
    ^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_acth㈵>Nlayer_norm_eps{Gz?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32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#'NEDL'#u# $$ L#*  L#*  L#* '*u*01 #+1OS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!NCs!!L#;>Jd3i%S/1D8>;=Jd3i%S/1D8="J" NE ,/sU{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KKlm((*;<**224K**K%MKKpq**,?@ ..668M ..M "::&8$?#ZZ(<dC' 1 E4D E M M O 0557 )
U+%%;s3C*COeHe..u %<<?5@Y[  336%7NP   KK()" 01)"5"K8J"K"S"S"U006I*6U6[6[6]3(2UCHeO3#J/
 2779 )
U-'E]35G,GCSiLi00u %FFIUJce  99<=TV   KK()"   !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"3FYZK37K))D077;M4--4;NC17ECK$.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/   