




from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


SCREAMING_SNAKE_CASE_						       =	logging.get_logger(__name__)

SCREAMING_SNAKE_CASE_						       =	{
    """facebook/deit-base-distilled-patch16-224""": (
        """https://huggingface.co/facebook/deit-base-patch16-224/resolve/main/config.json"""
    ),
    # See all DeiT models at https://huggingface.co/models?filter=deit
}

class 		UpperCamelCase__			(				_UpperCamelCase       ):



     '''simple docstring'''

     __snake_case   :     List[str]		     =      'deit'






     def __init__(							self						:   Optional[Any]						,lowerCamelCase__						:   Tuple=768						,lowerCamelCase__						:   Dict=12						,lowerCamelCase__						:   Optional[Any]=12						,lowerCamelCase__						:   int=3072						,lowerCamelCase__						:   int="gelu"						,lowerCamelCase__						:   Optional[Any]=0.0						,lowerCamelCase__						:   Tuple=0.0						,lowerCamelCase__						:   Any=0.02						,lowerCamelCase__						:   Optional[int]=1e-1_2						,lowerCamelCase__						:   Optional[int]=224						,lowerCamelCase__						:   int=16						,lowerCamelCase__						:   Dict=3						,lowerCamelCase__						:   str=True						,lowerCamelCase__						:   Tuple=16						,**lowerCamelCase__						:   int						,)					->		List[Any]:




           '''simple docstring'''


           super().__init__(**_UpperCAmelCase	)

           SCREAMING_SNAKE_CASE		=						hidden_size
           SCREAMING_SNAKE_CASE		=						num_hidden_layers
           SCREAMING_SNAKE_CASE		=						num_attention_heads
           SCREAMING_SNAKE_CASE		=						intermediate_size
           SCREAMING_SNAKE_CASE		=						hidden_act
           SCREAMING_SNAKE_CASE		=						hidden_dropout_prob
           SCREAMING_SNAKE_CASE		=						attention_probs_dropout_prob
           SCREAMING_SNAKE_CASE		=						initializer_range
           SCREAMING_SNAKE_CASE		=						layer_norm_eps
           SCREAMING_SNAKE_CASE		=						image_size
           SCREAMING_SNAKE_CASE		=						patch_size
           SCREAMING_SNAKE_CASE		=						num_channels
           SCREAMING_SNAKE_CASE		=						qkv_bias
           SCREAMING_SNAKE_CASE		=						encoder_stride

class 		UpperCamelCase__			(				_UpperCamelCase       ):



     '''simple docstring'''

     __snake_case   :     Tuple		     =      version.parse("1.11"       )






     @property
     def     SCREAMING_SNAKE_CASE__  (							self						:   List[str]	)					->		Any:




           '''simple docstring'''


           return OrderedDict(
               [
                   ("""pixel_values""", {0: """batch""", 1: """num_channels""", 2: """height""", 3: """width"""}),
               ]	)






     @property
     def     SCREAMING_SNAKE_CASE__  (							self						:   Tuple	)					->		Optional[Any]:




           '''simple docstring'''


           return 1e-4









from __future__ import annotations



def        __lowercase       (				_SCREAMING_SNAKE_CASE     )			->       list[int]:


      '''simple docstring'''


      SCREAMING_SNAKE_CASE		=						2
      SCREAMING_SNAKE_CASE		=						[]
      while i * i <= n:
            if n % i:
                  i += 1
            else:
                  n //= i
                  factors.append(_SCREAMING_SNAKE_CASE     )
      if n > 1:
            factors.append(_SCREAMING_SNAKE_CASE     )
      return factors


if __name__ == "__main__":
      import doctest

      doctest.testmod()


