
    i&                     j    d Z ddlmZ ddlmZ ddlmZ  ed      e G d d	e                    Zd	gZy
)zLeViT model configuration    )strict   )PreTrainedConfig)auto_docstringzfacebook/levit-128S)
checkpointc                       e Zd ZU dZdZdZeee   z  eeef   z  e	d<   dZ
ee	d<   dZee	d<   dZee	d	<   d
Zee	d<   dZeee   z  eeef   z  e	d<   dZee   eedf   z  e	d<   dZee   eedf   z  e	d<   dZee   eedf   z  e	d<   dZee   eedf   z  e	d<   dZee	d<   dZee   eedf   z  e	d<   dZee   eedf   z  e	d<   dZee	d<    fdZ xZS )LevitConfiga  
    stride (`int`, *optional*, defaults to 2):
        The stride size for the initial convolution layers of patch embedding.
    padding (`int`, *optional*, defaults to 1):
        The padding size for the initial convolution layers of patch embedding.
    key_dim (`list[int]`, *optional*, defaults to `[16, 16, 16]`):
        The size of key in each of the encoder blocks.
    attention_ratio (`list[int]`, *optional*, defaults to `[2, 2, 2]`):
        Ratio of the size of the output dimension compared to input dimension of attention layers.

    Example:

    ```python
    >>> from transformers import LevitConfig, LevitModel

    >>> # Initializing a LeViT levit-128S style configuration
    >>> configuration = LevitConfig()

    >>> # Initializing a model (with random weights) from the levit-128S style configuration
    >>> model = LevitModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```levit   
image_sizer   num_channelskernel_size   stride   padding   
patch_size)      i  .hidden_sizes)         num_attention_heads)r   r   r   depths)r   r   r   key_dimr   drop_path_rate)r   r   r   	mlp_ratioattention_ratiog{Gz?initializer_rangec                     d| j                   d   | j                  d   | j                   d   z  dddgd| j                   d   | j                  d   | j                   d   z  dddgg| _        t        |   di | y )N	Subsampler   r   r   r    )r   r   down_opssuper__post_init__)selfkwargs	__class__s     ~/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/transformers/models/levit/configuration_levit.pyr'   zLevitConfig.__post_init__C   s    $,,q/4+<+<Q+?4<<PQ?+RTUWXZ[\$,,q/4+<+<Q+?4<<PQ?+RTUWXZ[\
 	''    )__name__
__module____qualname____doc__
model_typer   intlisttuple__annotations__r   r   r   r   r   r   r   r   r   r   r   r    r!   floatr'   __classcell__)r*   s   @r+   r	   r	      s6   2 J47Jd3i%S/17L#KFCOGS46Jd3i%S/160?L$s)eCHo-?7AcU38_4A*3FDIc3h'3+7GT#YsCx(7NC-6ItCy5c?*63<OT#YsCx0<#u#( (r,   r	   N)	r0   huggingface_hub.dataclassesr   configuration_utilsr   utilsr   r	   __all__r$   r,   r+   <module>r<      sG      . 3 # 010(" 0(  20(f /r,   