Ë
    ÛÓ^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CLIP model configurationé    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingzopenai/clip-vit-base-patch32)Ú
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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d
z  ed<   dZeez  d
z  ed<   dZeed<   dZed
z  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!<   d"„ Zy
)#ÚCLIPTextConfigaâ  
    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                 óˆ   — | j                   | j                  z  dk7  r&t        d| j                   › d| j                  › d�«      ‚y©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    úv/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/clip/configuration_clip.pyÚvalidate_architecturez$CLIPTextConfig.validate_architectureB   óS   € à×Ñ˜d×6Ñ6Ñ6¸!Ò;ÜØ# D×$4Ñ$4Ð#5ð 6Ø×2Ñ2Ð3°2ð7óð ð <ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r   r   r   r   r   r   r   Ústrr   Úfloatr   r   r!   r#   r$   r%   Úlistr-   © r/   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ór/   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d<   d
Zeed<   dZeed<   dZeee   z  eeef   z  dz  ed<   dZeee   z  eeef   z  dz  ed<   dZeed<   dZeed<   dZeez  dz  ed<   dZeed<   dZeed<   d„ Zy)ÚCLIPVisionConfigaî  
    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                 óˆ   — | j                   | j                  z  dk7  r&t        d| j                   › d| j                  › d�«      ‚yr'   r(   r*   s    r,   r-   z&CLIPVisionConfig.validate_architectureo   r.   r/   )r0   r1   r2   r3   r4   r5   r   r6   r7   r   r   r   r   r@   rB   r:   ÚtuplerD   r   r8   r   r9   r   r   r!   r-   r;   r/   r,   r=   r=   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Ó#Ø #Ð˜Ó#ór/   r=   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dz  e
d<   d	Zeez  dz  e
d
<   dZedz  e
d<   ˆ fd„Zˆ xZS )Ú
CLIPConfiga  
    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   r?   Nr   r?   r   r   gƒ/L¦
F@Úlogit_scale_init_valuer    r!   c                 ó¾  •— | 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 )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["r;   )r   ÚloggerÚinfoÚ
isinstancer
   Úto_dictr?   r=   ÚpopÚitemsÚupdater8   ÚsuperÚ__post_init__)r+   Úkwargsr   r?   rL   rM   Ú_text_config_dictÚkeyÚvalueÚmessageÚ_vision_config_dictÚ	__class__s              €r,   rY   zCLIPConfig.__post_init__¤   s¨  ø€ Ø×ÑÐ#ØˆKÜ�K‰KÐiÕjÜ˜×(Ñ(¬.Ô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ò )‘
��UØ˜+Ò%¨%°;¸sÑ3CÓ*CÈÐOeÓHeàÐ.Ñ.à ˜uð %<Ø<?¸5Ð@Yð[ñ  ð3Ø36°%Ð7NðPð  ô —K‘K Õ(ð)ð" ×ÑÐ0Ô1àÐ)ä"2Ñ"HÐ5GÑ"H×"PÑ"PÓ"RÐàÐ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ô *Ñ8¨KÑ8ˆÔÜ-Ñ>°Ñ>ˆÔä‰ÑÑ' Ó'ùó93s   Æ&I)r0   r1   r2   r3   r4   r
   r=   Úsub_configsr   Údictr7   r?   r   r6   rJ   r9   r!   rY   Ú__classcell__)r`   s   @r,   rH   rH   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(r/   rH   )rH   r
   r=   N)r3   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Ú
get_loggerr0   rQ   r
   r=   rH   Ú__all__r;   r/   r,   ú<module>ri      s²   ðñ å .å 3ß ,ð 
ˆ×	Ñ	˜HÓ	%€ñ Ð9Ô:Øô-Ð%ó -ó ó ;ð-ñ` Ð9Ô:Øô(Ð'ó (ó ó ;ð(ñV Ð9Ô:Øô{(Ð!ó {(ó ó ;ð{(ò| ?�r/   