§
    ‚Štj%/  ã                   óF  — 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dS )é    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingzCIDAS/clipseg-rd64)Ú
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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dS )"ÚCLIPSegTextConfigaà  
    Example:

    ```python
    >>> from transformers import CLIPSegTextConfig, CLIPSegTextModel

    >>> # Initializing a CLIPSegTextConfig with CIDAS/clipseg-rd64 style configuration
    >>> configuration = CLIPSegTextConfig()

    >>> # Initializing a CLIPSegTextModel (with random weights) from the CIDAS/clipseg-rd64 style configuration
    >>> model = CLIPSegTextModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úclipseg_text_modelÚtext_configi Á  Ú
vocab_sizeé   Úhidden_sizeé   Úintermediate_sizeé   Únum_hidden_layersé   Únum_attention_headséM   Úmax_position_embeddingsÚ
quick_geluÚ
hidden_actçñhãˆµøä>NÚlayer_norm_epsç        Úattention_dropoutç{®Gáz”?Úinitializer_rangeç      ð?Úinitializer_factoré   Úpad_token_idiþÀ  Úbos_token_idiÿÀ  Úeos_token_idc                 ól   — | j         | j        z  dk    r t          d| j         › d| j        › d�¦  «        ‚dS ©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    úo/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/clipseg/configuration_clipseg.pyÚvalidate_architecturez'CLIPSegTextConfig.validate_architectureE   ó[   € àÔ˜dÔ6Ñ6¸!Ò;Ð;Ýð7 DÔ$4ð 7ð 7ØÔ2ð7ð 7ð 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%   Úlistr-   © r/   r,   r
   r
      sJ  € € € € € € ðð ð  &€JØ#€Oà€J�ÐÐÑØ€K�ÐÐÑØ!Ð�sÐ!Ð!Ñ!ØÐ�sÐÐÑØ Ð˜Ð Ð Ñ Ø#%Ð˜SÐ%Ð%Ñ%Ø"€J�Ð"Ð"Ñ"Ø#'€N�E˜D‘LÐ'Ð'Ñ'Ø,/Ð�s˜U‘{ TÑ)Ð/Ð/Ñ/Ø#Ð�uÐ#Ð#Ñ#Ø'*Ð˜ ™Ð*Ð*Ñ*ð  !€L�#˜‘*Ð Ð Ñ Ø$€L�#˜‘*Ð$Ð$Ñ$Ø+0€L�#˜˜Sœ	‘/ DÑ(Ð0Ð0Ñ0ðð ð ð ð r/   r
   c                   ó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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dS )ÚCLIPSegVisionConfigaì  
    Example:

    ```python
    >>> from transformers import CLIPSegVisionConfig, CLIPSegVisionModel

    >>> # Initializing a CLIPSegVisionConfig with CIDAS/clipseg-rd64 style configuration
    >>> configuration = CLIPSegVisionConfig()

    >>> # Initializing a CLIPSegVisionModel (with random weights) from the CIDAS/clipseg-rd64 style configuration
    >>> model = CLIPSegVisionModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úclipseg_vision_modelÚvision_configi   r   i   r   r   r   r   r   Únum_channelséà   NÚ
image_sizeé    Ú
patch_sizer   r   r   r   r   r   r   r   r    r!   c                 ól   — | j         | j        z  dk    r t          d| j         › d| j        › d�¦  «        ‚dS r'   r(   r*   s    r,   r-   z)CLIPSegVisionConfig.validate_architectureq   r.   r/   )r0   r1   r2   r3   r4   r5   r   r6   r7   r   r   r   r@   rB   r:   ÚtuplerD   r   r8   r   r9   r   r   r!   r-   r;   r/   r,   r=   r=   N   s>  € € € € € € ðð ð  (€JØ%€Oà€K�ÐÐÑØ!Ð�sÐ!Ð!Ñ!ØÐ�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<   dZee         eedf         z  e
d<   dZee
d<   dZee
d<   dZeez  e
d<   dZee
d<   dZee
d<   dZee
d<   dZee
d<   ˆ fd„Zˆ xZS )ÚCLIPSegConfiga  
    extract_layers (`list[int]`, *optional*, defaults to `[3, 6, 9]`):
        Layers to extract when forwarding the query image through the frozen visual backbone of CLIP.
    reduce_dim (`int`, *optional*, defaults to 64):
        Dimensionality to reduce the CLIP vision embedding.
    conditional_layer (`int`, *optional*, defaults to 0):
        The layer to use of the Transformer encoder whose activations will be combined with the condition
        embeddings using FiLM (Feature-wise Linear Modulation). If 0, the last layer is used.
    use_complex_transposed_convolution (`bool`, *optional*, defaults to `False`):
        Whether to use a more complex transposed convolution in the decoder, enabling more fine-grained
        segmentation..

    Example:

    ```python
    >>> from transformers import CLIPSegConfig, CLIPSegModel

    >>> # Initializing a CLIPSegConfig with CIDAS/clipseg-rd64 style configuration
    >>> configuration = CLIPSegConfig()

    >>> # Initializing a CLIPSegModel (with random weights) from the CIDAS/clipseg-rd64 style configuration
    >>> model = CLIPSegModel(configuration)

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

    >>> # We can also initialize a CLIPSegConfig from a CLIPSegTextConfig and a CLIPSegVisionConfig

    >>> # Initializing a CLIPSegText and CLIPSegVision configuration
    >>> config_text = CLIPSegTextConfig()
    >>> config_vision = CLIPSegVisionConfig()

    >>> config = CLIPSegConfig(text_config=config_text, vision_config=config_vision)
    ```Úclipseg)r   r?   Nr   r?   r   Úprojection_dimgƒ/L¦
F@Úlogit_scale_init_valuer    r!   )r   é   é	   .Úextract_layersé@   Ú
reduce_dimé   Údecoder_num_attention_headsr   Údecoder_attention_dropoutr   Údecoder_hidden_actr   Údecoder_intermediate_sizer   Úconditional_layerFÚ"use_complex_transposed_convolutionc                 óô  •— | j         €i }t                               d¦  «         n;t          | j         t          ¦  «        r| j                              ¦   «         }n| j         }| j        €i }t                               d¦  «         n;t          | j        t          ¦  «        r| j                             ¦   «         }n| j        }|                     dd ¦  «        }|                     dd ¦  «        }|�‘t	          di |¤Ž                     ¦   «         }| 	                    ¦   «         D ]I\  }}||v r@|||         k    r4|dk    r.||v r
d|› d|› d�}	nd	|› d
�}	t                               |	¦  «         ŒJ| 
                    |¦  «         |�¼t          di |¤Ž                     ¦   «         }
d|
v r'd„ |
d          	                    ¦   «         D ¦   «         |
d<   |
 	                    ¦   «         D ]I\  }}||v r@|||         k    r4|dk    r.||v r
d|› d|› d�}	nd|› d
�}	t                               |	¦  «         ŒJ| 
                    |
¦  «         t	          di |¤Ž| _         t          di |¤Ž| _         t          ¦   «         j        di |¤Ž d S )NzR`text_config` is `None`. Initializing the `CLIPSegTextConfig` with default values.zV`vision_config` is `None`. initializing the `CLIPSegVisionConfig` 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.Úid2labelc                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r;   )r8   )Ú.0ÚkeyÚvalues      r,   ú
<dictcomp>z/CLIPSegConfig.__post_init__.<locals>.<dictcomp>ç   s1   € ð 3ð 3ð 3Ù(2¨¨U•C˜‘H”H˜eð3ð 3ð 3r/   zv` 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ÚupdateÚsuperÚ__post_init__)r+   Úkwargsr   r?   rY   rZ   Ú_text_config_dictr`   ra   ÚmessageÚ_vision_config_dictÚ	__class__s              €r,   rk   zCLIPSegConfig.__post_init__²   s[  ø€ ØÔÐ#ØˆKÝ�KŠKÐlÑmÔmÐmÐmÝ˜Ô(Õ*;Ñ<Ô<ð 	+ØÔ*×2Ò2Ñ4Ô4ˆKˆKàÔ*ˆKàÔÐ%ØˆMÝ�KŠKÐpÑqÔqÐqÐqÝ˜Ô*Õ,?Ñ@Ô@ð 	/Ø Ô.×6Ò6Ñ8Ô8ˆMˆMà Ô.ˆMð "Ÿ:š:Ð&8¸$Ñ?Ô?ÐØ#ŸZšZÐ(<¸dÑCÔCÐàÐ'å 1Ð EÐ EÐ4DÐ EÐ E× MÒ MÑ OÔ OÐð 0×5Ò5Ñ7Ô7ð )ð )‘
��UØ˜+Ð%Ð%¨%°;¸sÔ3CÒ*CÐ*CÈÐOeÒHeÐHeàÐ.Ð.Ð.ð[ ð [ð [Ø<?ð[ð [ð [ð  ˜ðPØ36ðPð Pð Pð  õ —K’K Ñ(Ô(Ð(øð ×ÒÐ0Ñ1Ô1Ð1àÐ)å"5Ð"KÐ"KÐ8JÐ"KÐ"K×"SÒ"SÑ"UÔ"UÐàÐ0Ð0Ð0ð3ð 3Ø6IÈ*Ô6U×6[Ò6[Ñ6]Ô6]ð3ñ 3ô 3Ð# JÑ/ð
 2×7Ò7Ñ9Ô9ð )ð )‘
��UØ˜-Ð'Ð'¨E°]À3Ô5GÒ,GÐ,GÈCÐSiÒLiÐLiàÐ0Ð0Ð0ðe ð eð eØFIðeð eð eð  ˜ðVØ9<ðVð Vð Vð  õ —K’K Ñ(Ô(Ð(øð × Ò Ð!4Ñ5Ô5Ð5õ -Ð;Ð;¨{Ð;Ð;ˆÔÝ0ÐAÐA°=ÐAÐAˆÔà�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r/   )r0   r1   r2   r3   r4   r
   r=   Úsub_configsr   Údictr7   r?   rJ   r6   rK   r9   r!   rN   r:   rF   rP   rR   rS   rT   r8   rU   rV   rW   Úboolrk   Ú__classcell__)rp   s   @r,   rH   rH   z   sw  ø€ € € € € € ð!ð !ðF €JØ"3ÐFYÐZÐZ€Kà37€K�Ð)Ñ)¨DÑ0Ð7Ð7Ñ7Ø7;€M�4Ð-Ñ-°Ñ4Ð;Ð;Ñ;Ø!$€N�C˜$‘JÐ$Ð$Ñ$Ø17Ð˜E C™K¨$Ñ.Ð7Ð7Ñ7Ø'*Ð˜ ™Ð*Ð*Ñ*à2;€N�D˜”I  c¨3 h¤Ñ/Ð;Ð;Ñ;Ø€J�ÐÐÑØ'(Ð Ð(Ð(Ñ(Ø-0Ð˜u s™{Ð0Ð0Ñ0Ø*Ð˜Ð*Ð*Ñ*Ø%)Ð˜sÐ)Ð)Ñ)ØÐ�sÐÐÑØ/4Ð&¨Ð4Ð4Ñ4ðQ(ð Q(ð Q(ð Q(ð Q(ð Q(ð Q(ð Q(ð Q(r/   rH   )rH   r
   r=   N)Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Ú
get_loggerr0   rc   r
   r=   rH   Ú__all__r;   r/   r,   ú<module>rz      sd  ðð( /Ð .Ð .Ð .Ð .Ð .à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ð 
ˆÔ	˜HÑ	%Ô	%€ð €Ð/Ð0Ñ0Ô0Øð,ð ,ð ,ð ,ð ,Ð(ñ ,ô ,ñ „ñ 1Ô0ð,ð^ €Ð/Ð0Ñ0Ô0Øð'ð 'ð 'ð 'ð 'Ð*ñ 'ô 'ñ „ñ 1Ô0ð'ðT €Ð/Ð0Ñ0Ô0ØðG(ð G(ð G(ð G(ð G(Ð$ñ G(ô G(ñ „ñ 1Ô0ðG(ðT HÐ
GÐ
G€€€r/   