Ë
    ÛÓ^jß*  ã                   ó   — 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)é    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingzBAAI/AltCLIP)Ú
checkpointc                   ó2  — 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d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dz  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y)%ÚAltCLIPTextConfigaR  
    project_dim (`int`, *optional*, defaults to 768):
        The dimensions of the teacher model before the mapping layer.

    Examples:

    ```python
    >>> from transformers import AltCLIPTextModel, AltCLIPTextConfig

    >>> # Initializing a AltCLIPTextConfig with BAAI/AltCLIP style configuration
    >>> configuration = AltCLIPTextConfig()

    >>> # Initializing a AltCLIPTextModel (with random weights) from the BAAI/AltCLIP style configuration
    >>> model = AltCLIPTextModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úaltclip_text_modelÚtext_configi’Ð Ú
vocab_sizei   Úhidden_sizei   Úintermediate_sizeé   Únum_hidden_layersé   Únum_attention_headsi  Úmax_position_embeddingsÚgeluÚ
hidden_actçñhãˆµøä>NÚlayer_norm_epsç{®Gáz”?Úinitializer_rangeÚinitializer_factoré   Úpad_token_idr   Úbos_token_idé   Úeos_token_idgš™™™™™¹?Úhidden_dropout_probÚattention_probs_dropout_probÚtype_vocab_sizeé   Úproject_dimc                 óˆ   — | 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    ú|/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/altclip/configuration_altclip.pyÚvalidate_architecturez'AltCLIPTextConfig.validate_architectureG   ó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   Ústrr   Úfloatr   r   r   r   r    r!   r"   r#   r%   r-   © r/   r,   r
   r
      sâ   … ñð& &€JØ#€Oà€J�ÓØ€K�ÓØ!Ð�sÓ!ØÐ�sÓØ!Ð˜Ó!Ø#&Ð˜SÓ&Ø€J�ÓØ#'€N�E˜D‘LÓ'Ø#Ð�uÓ#Ø $Ð˜Ó$Ø €L�#˜‘*Ó Ø €L�#˜‘*Ó Ø €L�#˜‘*Ó Ø'*Ð˜˜u™Ó*Ø01Ð  #¨¡+Ó1Ø€O�SÓØ€K�Óó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)ÚAltCLIPVisionConfigaà  
    Example:

    ```python
    >>> from transformers import AltCLIPVisionConfig, AltCLIPVisionModel

    >>> # Initializing a AltCLIPVisionConfig with BAAI/AltCLIP style configuration
    >>> configuration = AltCLIPVisionConfig()

    >>> # Initializing a AltCLIPVisionModel (with random weights) from the BAAI/AltCLIP style configuration
    >>> model = AltCLIPVisionModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úaltclip_vision_modelÚvision_configr$   r   i   r   i   Úprojection_dimé   r   r   r   Únum_channelséà   NÚ
image_sizeé    Ú
patch_sizeÚ
quick_gelur   r   r   g        Úattention_dropoutr   r   ç      ð?r   c                 óˆ   — | j                   | j                  z  dk7  r&t        d| j                   › d| j                  › d�«      ‚yr'   r(   r*   s    r,   r-   z)AltCLIPVisionConfig.validate_architecturet   r.   r/   )r0   r1   r2   r3   r4   r5   r   r6   r7   r   r?   r   r   rA   rC   ÚlistÚtuplerE   r   r8   r   r9   rG   r   r   r-   r:   r/   r,   r<   r<   P   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e
d<   d	Zeez  dz  e
d
<   dZedz  e
d<   ˆ fd„Zˆ xZS )ÚAltCLIPConfiga  
    Example:

    ```python
    >>> from transformers import AltCLIPConfig, AltCLIPModel

    >>> # Initializing a AltCLIPConfig with BAAI/AltCLIP style configuration
    >>> configuration = AltCLIPConfig()

    >>> # Initializing a AltCLIPModel (with random weights) from the BAAI/AltCLIP style configuration
    >>> model = AltCLIPModel(configuration)

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

    >>> # We can also initialize a AltCLIPConfig from a AltCLIPTextConfig and a AltCLIPVisionConfig

    >>> # Initializing a AltCLIPText and AltCLIPVision configuration
    >>> config_text = AltCLIPTextConfig()
    >>> config_vision = AltCLIPVisionConfig()

    >>> config = AltCLIPConfig(text_config=config_text, vision_config=config_vision)
    ```Úaltclip)r   r>   Nr   r>   r$   r?   gƒ/L¦
F@Úlogit_scale_init_valuerH   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 )NzR`text_config` is `None`. Initializing the `AltCLIPTextConfig` with default values.zV`vision_config` is `None`. initializing the `AltCLIPVisionConfig` 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>   rQ   rR   Ú_text_config_dictÚkeyÚvalueÚmessageÚ_vision_config_dictÚ	__class__s              €r,   r^   zAltCLIPConfig.__post_init__¢   s©  ø€ Ø×ÑÐ#ØˆKÜ�K‰KÐlÕmÜ˜×(Ñ(Ô*;Ô<Ø×*Ñ*×2Ñ2Ó4‰Kà×*Ñ*ˆKà×ÑÐ%ØˆMÜ�K‰KÐpÕqÜ˜×*Ñ*Ô,?Ô@Ø ×.Ñ.×6Ñ6Ó8‰Mà ×.Ñ.ˆMð "Ÿ:™:Ð&8¸$Ó?ÐØ#ŸZ™ZÐ(<¸dÓCÐàÐ'ä 1Ñ EÐ4DÑ E× MÑ MÓ OÐð 0×5Ñ5Ó7ò )‘
��UØ˜+Ò%¨%°;¸sÑ3CÓ*CÈÐOeÓHeàÐ.Ñ.à ˜uð %<Ø<?¸5Ð@Yð[ñ  ð3Ø36°%Ð7NðPð  ô —K‘K Õ(ð)ð" ×ÑÐ0Ô1àÐ)ä"5Ñ"KÐ8JÑ"K×"SÑ"SÓ"UÐàÐ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ô -Ñ;¨{Ñ;ˆÔÜ0ÑA°=ÑAˆÔä‰ÑÑ' Ó'ùó93s   Æ&I)r0   r1   r2   r3   r4   r
   r<   Úsub_configsr   Údictr7   r>   r?   r6   rO   r9   r   r^   Ú__classcell__)re   s   @r,   rM   rM   }   s}   ø… ñð0 €JØ"3ÐFYÑZ€Kà37€K�Ð)Ñ)¨DÑ0Ó7Ø7;€M�4Ð-Ñ-°Ñ4Ó;à€N�CÓØ17Ð˜E C™K¨$Ñ.Ó7Ø'*Ð˜ ™Ó*÷Q(ð Q(r/   rM   )r
   r<   rM   N)Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Ú
get_loggerr0   rV   r
   r<   rM   Ú__all__r:   r/   r,   ú<module>rn      s­   ðõ& /å 3ß ,ð 
ˆ×	Ñ	˜HÓ	%€ñ ˜>Ô*Øô/Ð(ó /ó ó +ð/ñd ˜>Ô*Øô(Ð*ó (ó ó +ð(ñV ˜>Ô*Øôt(Ð$ó t(ó ó +ðt(òn H�r/   