ó
    qyüi²)  ã                   óò   • 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CLIP model configurationé    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingzopenai/clip-vit-base-patch32)Ú
checkpointc                   ó6  • \ rS rSr% SrSrSrSr\\	S'   Sr
\\	S'   S	r\\	S
'   Sr\S-  \	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r\S-  \	S'   Sr\S-  \	S'   Sr\S-  \	S '   S!r\\\   -  S-  \	S"'   S# rS$rg)%ÚCLIPTextConfigé   aº  
Example:

```python
>>> from transformers import CLIPTextConfig, CLIPTextModel

>>> # Initializing a CLIPTextConfig with openai/clip-vit-base-patch32 style configuration
>>> configuration = CLIPTextConfig()

>>> # Initializing a CLIPTextModel (with random weights) from the openai/clip-vit-base-patch32 style configuration
>>> model = CLIPTextModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```Úclip_text_modelÚtext_configi Á  Ú
vocab_sizeé   Úhidden_sizei   Úintermediate_sizeNÚprojection_dimé   Únum_hidden_layersé   Únum_attention_headséM   Úmax_position_embeddingsÚ
quick_geluÚ
hidden_actçñhãˆµøä>Úlayer_norm_epsç        Úattention_dropoutç{®Gáz”?Úinitializer_rangeç      ð?Úinitializer_factoré   Úpad_token_idiþÀ  Úbos_token_idiÿÀ  Úeos_token_idc                 óŠ   • U R                   U R                  -  S:w  a&  [        SU R                    SU R                   S35      eg©zOPart of `@strict`-powered validation. Validates the architecture of the config.r   zThe hidden size (z6) is not a multiple of the number of attention heads (z).N©r   r   Ú
ValueError©Úselfs    Úh/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/models/clip/configuration_clip.pyÚvalidate_architectureÚ$CLIPTextConfig.validate_architectureB   óS   € à×Ñ˜d×6Ñ6Ñ6¸!Ó;ÜØ# D×$4Ñ$4Ð#5ð 6Ø×2Ñ2Ð3°2ð7óð ð <ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r   r   r   r   r   r   r   Ústrr   Úfloatr   r    r"   r$   r%   r&   Úlistr.   Ú__static_attributes__r2   r1   r-   r
   r
      sá   ‡ ñð  #€JØ#€Oà€J�ÓØ€K�ÓØ!Ð�sÓ!Ø!$€N�C˜$‘JÓ$ØÐ�sÓØ Ð˜Ó Ø#%Ð˜SÓ%Ø"€J�Ó"Ø#'€N�E˜D‘LÓ'Ø,/Ð�s˜U‘{ TÑ)Ó/Ø#Ð�uÓ#Ø'*Ð˜ ™Ó*ð  !€L�#˜‘*Ó Ø$€L�#˜‘*Ó$Ø+0€L�#˜˜S™	‘/ DÑ(Ó0õr1   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'   Sr\\	S'   Sr\\	S'   Sr\\\   -  \\\4   -  S-  \	S'   Sr\\\   -  \\\4   -  S-  \	S'   Sr\\	S'   Sr\\	S'   Sr\\-  S-  \	S'   Sr\\	S'   Sr\\	S'   S rS rg)!ÚCLIPVisionConfigéK   aÆ  
Example:

```python
>>> from transformers import CLIPVisionConfig, CLIPVisionModel

>>> # Initializing a CLIPVisionConfig with openai/clip-vit-base-patch32 style configuration
>>> configuration = CLIPVisionConfig()

>>> # Initializing a CLIPVisionModel (with random weights) from the openai/clip-vit-base-patch32 style configuration
>>> model = CLIPVisionModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```Úclip_vision_modelÚvision_configi   r   i   r   r   r   r   r   r   r   Únum_channelséà   NÚ
image_sizeé    Ú
patch_sizer   r   r   r   r   r   r   r    r!   r"   c                 óŠ   • U R                   U R                  -  S:w  a&  [        SU R                    SU R                   S35      egr(   r)   r+   s    r-   r.   Ú&CLIPVisionConfig.validate_architectureo   r0   r1   r2   )r3   r4   r5   r6   r7   r8   r9   r   r:   r;   r   r   r   r   rE   rG   r>   ÚtuplerI   r   r<   r   r=   r   r    r"   r.   r?   r2   r1   r-   rA   rA   K   sÝ   ‡ ñð  %€JØ%€Oà€K�ÓØ!Ð�sÓ!Ø€N�CÓØÐ�sÓØ!Ð˜Ó!Ø€L�#ÓØ;>€J��d˜3‘i‘ %¨¨S¨¡/Ñ1°DÑ8Ó>Ø;=€J��d˜3‘i‘ %¨¨S¨¡/Ñ1°DÑ8Ó=Ø"€J�Ó"Ø €N�EÓ Ø,/Ð�s˜U‘{ TÑ)Ó/Ø#Ð�uÓ#Ø #Ð˜Ó#õr1   rA   c                   ó²   ^ • \ rS rSr% SrSr\\S.rSr	\
\-  S-  \S'   Sr\
\-  S-  \S'   Sr\S-  \S	'   S
r\\-  S-  \S'   Sr\S-  \S'   U 4S jrSrU =r$ )Ú
CLIPConfigéx   a«  
text_config (`dict`, *optional*):
    Dictionary of configuration options used to initialize [`CLIPTextConfig`].
vision_config (`dict`, *optional*):
    Dictionary of configuration options used to initialize [`CLIPVisionConfig`].
logit_scale_init_value (`float | int`, *optional*, defaults to 2.6592):
    The initial value of the *logit_scale* parameter. Default is used as per the original CLIP implementation.

Example:

```python
>>> from transformers import CLIPConfig, CLIPModel

>>> # Initializing a CLIPConfig with openai/clip-vit-base-patch32 style configuration
>>> configuration = CLIPConfig()

>>> # Initializing a CLIPModel (with random weights) from the openai/clip-vit-base-patch32 style configuration
>>> model = CLIPModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

>>> # We can also initialize a CLIPConfig from a CLIPTextConfig and a CLIPVisionConfig
>>> from transformers import CLIPTextConfig, CLIPVisionConfig

>>> # Initializing a CLIPText and CLIPVision configuration
>>> config_text = CLIPTextConfig()
>>> config_vision = CLIPVisionConfig()

>>> config = CLIPConfig(text_config=config_text, vision_config=config_vision)
```Úclip)r   rD   Nr   rD   r   r   gƒ/L¦
F@Úlogit_scale_init_valuer!   r"   c                 ó   >• 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 )NzO`text_config` is `None`. Initializing the `CLIPTextConfig` with default values.zS`vision_config` is `None`. initializing the `CLIPVisionConfig` 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.zj`text_config_dict` is provided which will be used to initialize `CLIPTextConfig`. 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["zp`vision_config_dict` is provided which will be used to initialize `CLIPVisionConfig`. The value `vision_config["r2   )r   ÚloggerÚinfoÚ
isinstancer
   Úto_dictrD   rA   ÚpopÚitemsÚupdater<   ÚsuperÚ__post_init__)r,   Úkwargsr   rD   rS   rT   Ú_text_config_dictÚkeyÚvalueÚmessageÚ_vision_config_dictÚ	__class__s              €r-   r`   ÚCLIPConfig.__post_init__¤   s•  ø€ Ø×ÑÑ#ØˆKÜ�K‰KÐiÕjÜ˜×(Ñ(¬.×9Ñ9Ø×*Ñ*×2Ñ2Ó4‰Kà×*Ñ*ˆKà×ÑÑ%ØˆMÜ�K‰KÐmÕnÜ˜×*Ñ*Ô,<×=Ñ=Ø ×.Ñ.×6Ñ6Ó8‰Mà ×.Ñ.ˆMð "Ÿ:™:Ð&8¸$Ó?ÐØ#ŸZ™ZÐ(<¸dÓCÐàÑ'ä .Ñ BÐ1AÑ B× JÑ JÓ LÐð 0×5Ñ5Ö7‘
�ØÕ%¨%¸sÑ3CÕ*CÈÐOeÕHeàÓ.à ˜uð %<Ø<?¸5Ð@Yð[ñ  ð3Ø36°%Ð7NðPð  ô —K‘K Ö(ñ 8ð" ×ÑÐ0Ô1àÑ)ä"2Ñ"HÐ5GÑ"H×"PÑ"PÓ"RÐàÐ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ô *Ñ8¨KÑ8ˆÔÜ-Ñ>°Ñ>ˆÔä‰ÒÑ' Ó'ùó93s   Æ=I:)r3   r4   r5   r6   r7   r8   r
   rA   Úsub_configsr   Údictr;   rD   r   r:   rQ   r=   r"   r`   r?   Ú__classcell__)rg   s   @r-   rN   rN   x   s�   ø‡ ñð@ €JØ"0ÐCSÑT€Kà04€K�˜Ñ&¨Ñ-Ó4Ø48€M�4Ð*Ñ*¨TÑ1Ó8Ø!$€N�C˜$‘JÓ$Ø17Ð˜E C™K¨$Ñ.Ó7Ø'*Ð˜ ™Ó*÷Q(ó Q(r1   rN   )rN   r
   rA   N)r7   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Ú
get_loggerr3   rX   r
   rA   rN   Ú__all__r2   r1   r-   Ú<module>rq      s°   ðñ å .å 3ß ,ð 
×	Ò	˜HÓ	%€ñ Ð9Ñ:Øô-Ð%ó -ó ó ;ð-ñ` Ð9Ñ:Øô(Ð'ó (ó ó ;ð(ñV Ð9Ñ:Øô{(Ð!ó {(ó ó ;ð{(ò| ?�r1   