Ë
    ÛÓ^j¶&  ã                   ó  — d Z ddlmZ ddlmZ ddlmZmZ  ej                  e	«      Z
 ed¬«      e G d„ d	e«      «       «       Z ed¬«      e G d
„ de«      «       «       Z ed¬«      e G d„ de«      «       «       Zg d¢Zy)zGroupViT model configurationé    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingznvidia/groupvit-gcc-yfcc)Ú
checkpointc                   ó  — e Zd ZU dZdZdZdZe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d<   dZeed<   dZeed<   dZeez  ed<   dZeez  ed<   dZeed<   dZeed<   dZedz  ed<   dZedz  ed<   d Zeee   z  dz  ed!<   y)"ÚGroupViTTextConfigaz  
    Example:

    ```python
    >>> from transformers import GroupViTTextConfig, GroupViTTextModel

    >>> # Initializing a GroupViTTextModel with nvidia/groupvit-gcc-yfcc style configuration
    >>> configuration = GroupViTTextConfig()

    >>> model = GroupViTTextModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úgroupvit_text_modelÚtext_configi Á  Ú
vocab_sizeé   Úhidden_sizei   Úintermediate_sizeé   Únum_hidden_layersé   Únum_attention_headséM   Úmax_position_embeddingsÚ
quick_geluÚ
hidden_actçñhãˆµøä>Úlayer_norm_epsç        ÚdropoutÚattention_dropoutç{®Gáz”?Úinitializer_rangeç      ð?Úinitializer_factoré   NÚpad_token_idiþÀ  Úbos_token_idiÿÀ  Úeos_token_id)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r   r   r   r   r   r   Ústrr   Úfloatr   r   r   r!   r#   r$   r%   Úlist© ó    ú~/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/groupvit/configuration_groupvit.pyr
   r
      sÍ   … ñð '€JØ#€Oà€J�ÓØ€K�ÓØ!Ð�sÓ!ØÐ�sÓØ Ð˜Ó Ø#%Ð˜SÓ%Ø"€J�Ó"Ø €N�EÓ Ø€GˆU�S‰[ÓØ%(Ð�u˜s‘{Ó(Ø#Ð�uÓ#Ø #Ð˜Ó#Ø €L�#˜‘*Ó Ø$€L�#˜‘*Ó$Ø+0€L�#˜˜S™	‘/ DÑ(Ô0r2   r
   c                   óÄ  — e Zd ZU dZdZdZdZeed<   dZ	e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   eedf   z  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   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z  ed<   dZeez  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z  df   z  ed&<   d'„ Zy())ÚGroupViTVisionConfigaÛ  
    depths (`list[int]`, *optional*, defaults to [6, 3, 3]):
        The number of layers in each encoder block.
    num_group_tokens (`list[int]`, *optional*, defaults to [64, 8, 0]):
        The number of group tokens for each stage.
    num_output_groups (`list[int]`, *optional*, defaults to [64, 8, 8]):
        The number of output groups for each stage, 0 means no group.
    assign_eps (`float`, *optional*, defaults to `1.0`):
        Epsilon used in layer norm
    assign_mlp_ratio (`list[int]`, *optional*, defaults to `[0.5, 4]`):
        Ratio used to infer hidden size of MLP layers.

    Example:

    ```python
    >>> from transformers import GroupViTVisionConfig, GroupViTVisionModel

    >>> # Initializing a GroupViTVisionModel with nvidia/groupvit-gcc-yfcc style configuration
    >>> configuration = GroupViTVisionConfig()

    >>> model = GroupViTVisionModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úgroupvit_vision_modelÚvision_configi€  r   i   r   r   r   )é   r   r   .Údepths)é@   é   r   Únum_group_tokens)r:   r;   r;   Únum_output_groupsr8   r   éà   Ú
image_sizeé   Ú
patch_sizer   Únum_channelsÚgelur   r   r   r   r   r   r   r   r    r!   Ú
assign_eps)g      à?r   Úassign_mlp_ratioc                 óº   — | j                   t        | j                  «      k7  r9t        j	                  d| j                   › dt        | j                  «      › �«       yy)zOPart of `@strict`-powered validation. Validates the architecture of the config.z&Manually setting num_hidden_layers to z1, but we expect num_hidden_layers = sum(depth) = N)r   Úsumr9   ÚloggerÚwarning)Úselfs    r3   Úvalidate_architecturez*GroupViTVisionConfig.validate_architecturer   sR   € à×!Ñ!¤S¨¯©Ó%5Ò5Ü�N‰NØ8¸×9OÑ9OÐ8Pð Q!Ü!$ T§[¡[Ó!1Ð 2ð4õð 6r2   N)r&   r'   r(   r)   r*   r+   r   r,   r-   r   r   r9   r0   Útupler<   r=   r   r?   rA   rB   r   r.   r   r/   r   r   r   r!   rD   rE   rK   r1   r2   r3   r5   r5   ?   sV  … ñð4 )€JØ%€Oà€K�ÓØ!Ð�sÓ!ØÐ�sÓØ*3€FˆD�‰I˜˜c 3˜h™Ñ'Ó3Ø4>Ð�d˜3‘i %¨¨S¨¡/Ñ1Ó>Ø5?Ð�t˜C‘y 5¨¨c¨¡?Ñ2Ó?Ø Ð˜Ó Ø47€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó7Ø46€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó6Ø€L�#ÓØ€J�ÓØ €N�EÓ Ø€GˆU�S‰[ÓØ%(Ð�u˜s‘{Ó(Ø#Ð�uÓ#Ø #Ð˜Ó#Ø€J�ÓØDLÐ�d˜5 3™;Ñ'¨%°¸±¸SÐ0@Ñ*AÑAÓLór2   r5   c                   óº   ‡ — e Zd ZU dZdZeedœZdZe	e
z  dz  ed<   dZe	e
z  d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d<   dZeed<   ˆ fd„Zˆ xZS )ÚGroupViTConfiga  
    projection_intermediate_dim (`int`, *optional*, defaults to 4096):
        Dimensionality of intermediate layer of text and vision projection layers.
    output_segmentation (`bool`, *optional*, defaults to False):
        Whether or not to return the segmentation logits.
    Úgroupvit)r   r7   Nr   r7   r   Úprojection_dimi   Úprojection_intermediate_dimgƒ/L¦
F@Úlogit_scale_init_valuer   r   r    r!   FÚoutput_segmentationc                 ó¾  •— | j                   €i }t        j                  d«       nAt        | j                   t        «      r| j                   j                  «       }n| j                   }| j                  €i }t        j                  d«       nAt        | j                  t        «      r| j                  j                  «       }n| j                  }|j                  dd «      }|j                  dd «      }|�t	        di |¤Žj                  «       }|j                  «       D ]B  \  }}||v sŒ|||   k7  sŒ|dk7  sŒ||v r
d|› d|› d�}	nd	|› d
�}	t        j                  |	«       ŒD |j                  |«       |�¶t        di |¤Žj                  «       }
d|
v r3|
d   j                  «       D ��ci c]  \  }}t        |«      |“Œ c}}|
d<   |
j                  «       D ]B  \  }}||v sŒ|||   k7  sŒ|dk7  sŒ||v r
d|› d|› d�}	nd|› d
�}	t        j                  |	«       ŒD |j                  |
«       t	        di |¤Ž| _         t        di |¤Ž| _        t        ‰| �4  di |¤Ž y c c}}w )NzS`text_config` is `None`. Initializing the `GroupViTTextConfig` with default values.zW`vision_config` is `None`. initializing the `GroupViTVisionConfig` with default values.Útext_config_dictÚvision_config_dictÚtransformers_versionú`zp` is found in both `text_config_dict` and `text_config` but with different values. The value `text_config_dict["z"]` will be used instead.zn`text_config_dict` is provided which will be used to initialize `GroupViTTextConfig`. The value `text_config["z"]` will be overridden.Úid2labelzv` is found in both `vision_config_dict` and `vision_config` but with different values. The value `vision_config_dict["zt`vision_config_dict` is provided which will be used to initialize `GroupViTVisionConfig`. The value `vision_config["r1   )r   rH   ÚinfoÚ
isinstancer
   Úto_dictr7   r5   ÚpopÚitemsÚupdater.   ÚsuperÚ__post_init__)rJ   Úkwargsr   r7   rU   rV   Ú_text_config_dictÚkeyÚvalueÚmessageÚ_vision_config_dictÚ	__class__s              €r3   ra   zGroupViTConfig.__post_init__‘   s©  ø€ Ø×ÑÐ#ØˆKÜ�K‰KÐmÕnÜ˜×(Ñ(Ô*<Ô=Ø×*Ñ*×2Ñ2Ó4‰Kà×*Ñ*ˆKà×ÑÐ%ØˆMÜ�K‰KÐqÕrÜ˜×*Ñ*Ô,@ÔAØ ×.Ñ.×6Ñ6Ó8‰Mà ×.Ñ.ˆMð "Ÿ:™:Ð&8¸$Ó?ÐØ#ŸZ™ZÐ(<¸dÓCÐàÐ'ä 2Ñ FÐ5EÑ F× NÑ NÓ PÐð 0×5Ñ5Ó7ò )‘
��UØ˜+Ò%¨%°;¸sÑ3CÓ*CÈÐOeÓHeàÐ.Ñ.à ˜uð %<Ø<?¸5Ð@Yð[ñ  ð3Ø36°%Ð7NðPð  ô —K‘K Õ(ð)ð" ×ÑÐ0Ô1àÐ)ä"6Ñ"LÐ9KÑ"L×"TÑ"TÓ"VÐàÐ0Ñ0à6IÈ*Ñ6U×6[Ñ6[Ó6]÷3Ù(2¨¨U”C˜“H˜e‘Oó3Ð# JÑ/ð
 2×7Ñ7Ó9ò )‘
��UØ˜-Ò'¨E°]À3Ñ5GÓ,GÈCÐSiÓLiàÐ0Ñ0à ˜uð %FØFIÀUÐJcðeñ  ð9Ø9<¸Ð=TðVð  ô —K‘K Õ(ð)ð" × Ñ Ð!4Ô5ô .Ñ<°Ñ<ˆÔÜ1ÑB°MÑBˆÔä‰ÑÑ' Ó'ùó93s   Æ&I)r&   r'   r(   r)   r*   r
   r5   Úsub_configsr   Údictr   r-   r7   rP   r,   rQ   rR   r/   r   r!   rS   Úboolra   Ú__classcell__)rh   s   @r3   rN   rN   {   s‘   ø… ñð €JØ"4ÐG[Ñ\€Kà26€K�Ð(Ñ(¨4Ñ/Ó6Ø48€M�4Ð*Ñ*¨TÑ1Ó8Ø€N�CÓØ'+Ð Ó+Ø$*Ð˜EÓ*Ø#Ð�uÓ#Ø #Ð˜Ó#Ø %Ð˜Ó%÷Q(ð Q(r2   rN   )rN   r
   r5   N)r)   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Ú
get_loggerr&   rH   r
   r5   rN   Ú__all__r1   r2   r3   ú<module>rr      s³   ðñ #å .å 3ß ,ð 
ˆ×	Ñ	˜HÓ	%€ñ Ð5Ô6Øô!1Ð)ó !1ó ó 7ð!1ñH Ð5Ô6Øô7Ð+ó 7ó ó 7ð7ñt Ð5Ô6Øôe(Ð%ó e(ó ó 7ðe(òP K�r2   