ó
    ‡Ž¡j¶&  ã                   óò   • S r SSKJr  SSKJr  SSKJrJr  \R                  " \	5      r
\" SS9\ " S S	\5      5       5       r\" SS9\ " S
 S\5      5       5       r\" SS9\ " S S\5      5       5       r/ SQrg)zGroupViT model configurationé    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingznvidia/groupvit-gcc-yfcc)Ú
checkpointc                   ó  • \ rS rSr% SrSrSrSr\\	S'   Sr
\\	S'   S	r\\	S
'   Sr\\	S'   Sr\\	S'   Sr\\	S'   Sr\\	S'   Sr\\	S'   Sr\\-  \	S'   Sr\\-  \	S'   Sr\\	S'   Sr\\	S'   Sr\S-  \	S'   Sr\S-  \	S '   S!r\\\   -  S-  \	S"'   S#rg)$ÚGroupViTTextConfigé   aV  
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__Ú__firstlineno__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r   r   r   r   r   r   Ústrr   Úfloatr   r   r    r"   r$   r%   r&   ÚlistÚ__static_attributes__r'   ó    ÚÁC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\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Ñ(Ö0r5   r
   c                   óÌ  • \ rS rSr% SrSrSrSr\\	S'   Sr
\\	S'   S	r\\	S
'   Sr\\   \\S4   -  \	S'   Sr\\   \\S4   -  \	S'   Sr\\   \\S4   -  \	S'   Sr\\	S'   Sr\\\   -  \\\4   -  \	S'   Sr\\\   -  \\\4   -  \	S'   Sr\\	S'   Sr\\	S'   Sr\\	S'   Sr\\-  \	S'   Sr\\-  \	S '   S!r\\	S"'   S#r\\	S$'   S#r\\	S%'   S&r\\\-     \\\-  S4   -  \	S''   S( rS)r g*)+ÚGroupViTVisionConfigé?   a�  
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_groupsr<   r   éà   Ú
image_sizeé   Ú
patch_sizer   Únum_channelsÚgelur   r   r   r   r   r   r   r    r!   r"   Ú
assign_eps)g      à?r   Úassign_mlp_ratioc                 ó¼   • U R                   [        U R                  5      :w  a9  [        R	                  SU R                    S[        U R                  5       35        gg)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   Úsumr=   ÚloggerÚwarning)Úselfs    r6   Úvalidate_architectureÚ*GroupViTVisionConfig.validate_architecturer   sR   € à×!Ñ!¤S¨¯©Ó%5Ó5Ü�N‰NØ8¸×9OÑ9OÐ8Pð Q!Ü!$ T§[¡[Ó!1Ð 2ð4õð 6r5   r'   N)!r(   r)   r*   r+   r,   r-   r.   r   r/   r0   r   r   r=   r3   Útupler@   rA   r   rC   rE   rF   r   r1   r   r2   r   r   r    r"   rH   rI   rO   r4   r'   r5   r6   r8   r8   ?   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õr5   r8   c                   óÄ   ^ • \ rS rSr% SrSr\\S.rSr	\
\-  S-  \S'   Sr\
\-  S-  \S'   Sr\\S	'   S
r\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   U 4S jrSrU =r$ )ÚGroupViTConfigé{   a  
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   r;   Nr   r;   r   Úprojection_dimi   Úprojection_intermediate_dimgƒ/L¦
F@Úlogit_scale_init_valuer   r    r!   r"   FÚoutput_segmentationc                 ó   >• U R                   c  0 n[        R                  S5        OF[        U R                   [        5      (       a  U R                   R                  5       nOU R                   nU R                  c  0 n[        R                  S5        OF[        U R                  [        5      (       a  U R                  R                  5       nOU R                  nUR                  SS 5      nUR                  SS 5      nUb†  [	        S0 UD6R                  5       nUR                  5        HH  u  pxXr;   d  M  X‚U   :w  d  M  US:w  d  M  Xt;   a
  SU SU S3n	OS	U S
3n	[        R                  U	5        MJ     UR                  U5        UbÁ  [        S0 UD6R                  5       n
SU
;   a5  U
S   R                  5        VVs0 s H  u  px[        U5      U_M     snnU
S'   U
R                  5        HH  u  pxXs;   d  M  XƒU   :w  d  M  US:w  d  M  Xu;   a
  SU SU S3n	OSU S
3n	[        R                  U	5        MJ     UR                  U
5        [	        S0 UD6U l         [        S0 UD6U l        [        TU ]4  " S0 UD6  g s  snnf )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["r'   )r   rL   ÚinfoÚ
isinstancer
   Úto_dictr;   r8   ÚpopÚitemsÚupdater1   ÚsuperÚ__post_init__)rN   Úkwargsr   r;   r[   r\   Ú_text_config_dictÚkeyÚvalueÚmessageÚ_vision_config_dictÚ	__class__s              €r6   rg   ÚGroupViTConfig.__post_init__‘   s–  ø€ Ø×ÑÑ#ØˆKÜ�K‰KÐmÕnÜ˜×(Ñ(Ô*<×=Ñ=Ø×*Ñ*×2Ñ2Ó4‰Kà×*Ñ*ˆKà×ÑÑ%ØˆMÜ�K‰KÐqÕrÜ˜×*Ñ*Ô,@×AÑAØ ×.Ñ.×6Ñ6Ó8‰Mà ×.Ñ.ˆMð "Ÿ:™:Ð&8¸$Ó?ÐØ#ŸZ™ZÐ(<¸dÓCÐàÑ'ä 2Ñ FÐ5EÑ F× NÑ NÓ PÐð 0×5Ñ5Ö7‘
�ØÕ%¨%¸sÑ3CÕ*CÈÐOeÕHeàÓ.à ˜uð %<Ø<?¸5Ð@Yð[ñ  ð3Ø36°%Ð7NðPð  ô —K‘K Ö(ñ 8ð" ×ÑÐ0Ô1àÑ)ä"6Ñ"LÐ9KÑ"L×"TÑ"TÓ"VÐàÐ0Ó0à6IÈ*Ñ6U×6[Ñ6[Ô6]ô3Ú6]©
¨”C˜“H˜e’OÑ6]ò3Ð# JÑ/ð
 2×7Ñ7Ö9‘
�ØÕ'¨EÀ3Ñ5GÕ,GÈCÐSiÕLiàÓ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-   r
   r8   Úsub_configsr   Údictr   r0   r;   rV   r/   rW   rX   r2   r    r"   rY   Úboolrg   r4   Ú__classcell__)rn   s   @r6   rS   rS   {   s‘   ø‡ ñð €JØ"4ÐG[Ñ\€Kà26€K�Ð(Ñ(¨4Ñ/Ó6Ø48€M�4Ð*Ñ*¨TÑ1Ó8Ø€N�CÓØ'+Ð Ó+Ø$*Ð˜EÓ*Ø#Ð�uÓ#Ø #Ð˜Ó#Ø %Ð˜Ó%÷Q(ó Q(r5   rS   )rS   r
   r8   N)r,   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Ú
get_loggerr(   rL   r
   r8   rS   Ú__all__r'   r5   r6   Ú<module>ry      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�r5   