§
    ‚Štjy*  ã                   ó‚  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
m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 ed	¬
¦  «        e G d„ d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 )zSAM3 model configurationé    )Ústrict)ÚCLIPTextConfigé   )ÚPreTrainedConfig)Úauto_docstringé   )ÚCONFIG_MAPPINGÚ
AutoConfigzfacebook/sam3)Ú
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e         z  eeef         z  ed<   dZeee         z  eee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z  ed<   dZedz  ed<   dZeee         z  eeef         z  ed <   dZeez  ed!<   d"Zeed#<   ˆ fd$„Zˆ xZS )%ÚSam3ViTConfiga8  
    rope_theta (`float`, *optional*, defaults to 10000.0):
        Base frequency for RoPE.
    window_size (`int`, *optional*, defaults to 24):
        Window size for windowed attention.
    global_attn_indexes (`list[int]`, *optional*, defaults to `[7, 15, 23, 31]`):
        Indexes of layers with global attention.
    pretrain_image_size (`int`, *optional*, defaults to 336):
        Pretrained model image size for position embedding initialization.
    hidden_dropout (`float`, *optional*, defaults to 0.0):
        Dropout probability for hidden states.
    Úbackbone_configÚsam3_vit_modelé   Úhidden_sizei€  Úintermediate_sizeé    Únum_hidden_layersé   Únum_attention_headsr   Únum_channelsið  Ú
image_sizeé   Ú
patch_sizeÚgeluÚ
hidden_actç�íµ ÷Æ°>Úlayer_norm_epsç        Úattention_dropoutg     ˆÃ@Ú
rope_thetaé   Úwindow_sizeNÚglobal_attn_indexesÚlayer_scale_init_valueiP  Úpretrain_image_sizeÚhidden_dropoutç{®Gáz”?Úinitializer_rangec                 ó^   •—  t          ¦   «         j        di |¤Ž | j        €g d¢| _        d S d S )N)é   é   é   é   © )ÚsuperÚ__post_init__r$   ©ÚselfÚkwargsÚ	__class__s     €úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/sam3/configuration_sam3.pyr1   zSam3ViTConfig.__post_init__>   sC   ø€ Ø�‰ŒÔÐ'Ð' Ð'Ð'Ð'ØÔ#Ð+Ø'6  ˆDÔ$Ð$Ð$ð ,Ð+ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úbase_config_keyÚ
model_typer   ÚintÚ__annotations__r   r   r   r   r   ÚlistÚtupler   r   Ústrr   Úfloatr    r!   r#   r$   r%   r&   r'   r)   r1   Ú__classcell__©r5   s   @r6   r   r      s¼  ø€ € € € € € ðð ð (€OØ!€Jà€K�ÐÐÑØ!Ð�sÐ!Ð!Ñ!ØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø€L�#ÐÐÑØ48€J��d˜3”i‘ %¨¨S¨¤/Ñ1Ð8Ð8Ñ8Ø46€J��d˜3”i‘ %¨¨S¨¤/Ñ1Ð6Ð6Ñ6Ø€J�ÐÐÑØ €N�EÐ Ð Ñ Ø%(Ð�u˜s‘{Ð(Ð(Ñ(Ø€J�ÐÐÑØ€K�ÐÐÑØ,0Ð˜˜cœ TÑ)Ð0Ð0Ñ0Ø+/Ð˜E D™LÐ/Ð/Ñ/Ø=@Ð˜˜t Cœy™¨5°°c°¬?Ñ:Ð@Ð@Ñ@Ø"%€N�E˜C‘KÐ%Ð%Ñ%Ø#Ð�uÐ#Ð#Ñ#ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7r7   r   c                   óð   ‡ — e Zd ZU dZdZdZdeiZdZe	e
z  dz  ed<   dZeed<   dZedz  ed<   dZee         dz  ed	<   d
Zeed<   dZeed<   dZeed<   ˆ fd„Zed„ ¦   «         Zej        d„ ¦   «         Zˆ xZS )ÚSam3VisionConfigaî  
    fpn_hidden_size (`int`, *optional*, defaults to 256):
        The hidden dimension of the FPN.
    backbone_feature_sizes (`List[List[int]]`, *optional*, defaults to `[[288, 288], [144, 144], [72, 72]]`):
        The spatial sizes (height, width) of the feature maps from the backbone at different scales.
    scale_factors (`list[float]`, *optional*, defaults to `[4.0, 2.0, 1.0, 0.5]`):
        Scale factors for FPN multi-scale features. List of scaling factors for each FPN level.
    Úvision_configÚsam3_vision_modelr   Né   Úfpn_hidden_sizeÚbackbone_feature_sizesÚscale_factorsr   r   r   r   r(   r)   c                 ó   •— | j         €g d¢n| j         | _         | j        €ddgddgddgg| _        t          | j        t          ¦  «        rK| j                             dd¦  «        | j        d<   t          | j        d                  di | j        ¤Ž| _        n | j        €t          d         ¦   «         | _         t          ¦   «         j        di |¤Ž d S )N)g      @g       @g      ð?g      à?i   é�   éH   r=   r   r/   )	rM   rL   Ú
isinstancer   ÚdictÚgetr	   r0   r1   r2   s     €r6   r1   zSam3VisionConfig.__post_init__^   sè   ø€ Ø59Ô5GÐ5OÐ1Ð1Ð1Ð1ÐUYÔUgˆÔØÔ&Ð.Ø,/°¨:¸¸S°zÀBÈÀ8Ð*LˆDÔ'å�dÔ*­DÑ1Ô1ð 	FØ15Ô1E×1IÒ1IÈ,ÐXhÑ1iÔ1iˆDÔ  Ñ.Ý#1°$Ô2FÀ|Ô2TÔ#UÐ#mÐ#mÐX\ÔXlÐ#mÐ#mˆDÔ Ð ØÔ!Ð)Ý#1Ð2BÔ#CÑ#EÔ#EˆDÔ à�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r7   c                 ó   — | j         j        S )z"Image size for the vision encoder.©r   r   ©r3   s    r6   r   zSam3VisionConfig.image_sizek   s   € ð Ô#Ô.Ð.r7   c                 ó   — || j         _        dS )z-Set the image size and propagate to backbone.NrU   ©r3   Úvalues     r6   r   zSam3VisionConfig.image_sizep   s   € ð +0ˆÔÔ'Ð'Ð'r7   )r8   r9   r:   r;   r<   r=   r
   Úsub_configsr   rR   r   r?   rK   r>   rL   r@   rM   rC   r   rB   r   r)   r1   Úpropertyr   ÚsetterrD   rE   s   @r6   rG   rG   D   s"  ø€ € € € € € ðð ð &€OØ$€Jà˜:ð€Kð 7;€O�TÐ,Ñ,¨tÑ3Ð:Ð:Ñ:Ø€O�SÐÐÑØ*.Ð˜D 4™KÐ.Ð.Ñ.Ø(,€M�4˜”; Ñ%Ð,Ð,Ñ,Ø€J�ÐÐÑØ €N�EÐ Ð Ñ Ø#Ð�uÐ#Ð#Ñ#ð(ð (ð (ð (ð (ð ð/ð /ñ „Xð/ð Ôð0ð 0ñ Ôð0ð 0ð 0ð 0ð 0r7   rG   c                   ó°   — e Zd ZU 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z  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S )ÚSam3GeometryEncoderConfigzc
    roi_size (`int`, *optional*, defaults to 7):
        ROI size for box pooling operations.
    Úsam3_geometry_encoderrJ   r   r   Ú
num_layersé   r   é   r   çš™™™™™¹?ÚdropoutÚrelur   r   r'   r   r   r+   Úroi_sizer(   r)   N)r8   r9   r:   r;   r=   r   r>   r?   r`   r   r   rd   rC   r   rB   r'   r   rf   r)   r/   r7   r6   r^   r^   v   sÎ   € € € € € € ðð ð
 )€Jà€K�ÐÐÑØ€J�ÐÐÑØ Ð˜Ð Ð Ñ Ø!Ð�sÐ!Ð!Ñ!Ø€GˆU�S‰[ÐÐÑØ€J�ÐÐÑØ"%€N�E˜C‘KÐ%Ð%Ñ%Ø €N�EÐ Ð Ñ Ø€HˆcÐÐÑØ#Ð�uÐ#Ð#Ñ#Ð#Ð#r7   r^   c                   ó¢   — e Zd ZU 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z  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S )ÚSam3DETREncoderConfigzo
    hidden_dropout (`float`, *optional*, defaults to 0.0):
        Dropout probability for hidden states.
    Úsam3_detr_encoderrJ   r   é   r`   ra   r   rb   r   rc   rd   re   r   r   r'   r   r   r(   r)   N)r8   r9   r:   r;   r=   r   r>   r?   r`   r   r   rd   rC   r   rB   r'   r   r)   r/   r7   r6   rh   rh   Œ   s¾   € € € € € € ðð ð
 %€Jà€K�ÐÐÑØ€J�ÐÐÑØ Ð˜Ð Ð Ñ Ø!Ð�sÐ!Ð!Ñ!Ø€GˆU�S‰[ÐÐÑØ€J�ÐÐÑØ"%€N�E˜C‘KÐ%Ð%Ñ%Ø €N�EÐ Ð Ñ Ø#Ð�uÐ#Ð#Ñ#Ð#Ð#r7   rh   c                   ó°   — e Zd ZU 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z  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S )ÚSam3DETRDecoderConfigz]
    num_queries (`int`, *optional*, defaults to 200):
        Number of object queries.
    Úsam3_detr_decoderrJ   r   rj   r`   éÈ   Únum_queriesra   r   rb   r   rc   rd   re   r   r   r'   r   r   r(   r)   N)r8   r9   r:   r;   r=   r   r>   r?   r`   ro   r   r   rd   rC   r   rB   r'   r   r)   r/   r7   r6   rl   rl   ¡   sÎ   € € € € € € ðð ð
 %€Jà€K�ÐÐÑØ€J�ÐÐÑØ€K�ÐÐÑØ Ð˜Ð Ð Ñ Ø!Ð�sÐ!Ð!Ñ!Ø€GˆU�S‰[ÐÐÑØ€J�ÐÐÑØ"%€N�E˜C‘KÐ%Ð%Ñ%Ø €N�EÐ Ð Ñ Ø#Ð�uÐ#Ð#Ñ#Ð#Ð#r7   rl   c                   ór   — e Zd ZU dZdZdZe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S )ÚSam3MaskDecoderConfigzƒ
    num_upsampling_stages (`int`, *optional*, defaults to 3):
        Number of upsampling stages in the pixel decoder (FPN).
    Úsam3_mask_decoderrJ   r   r   Únum_upsampling_stagesr   r   r   rd   ra   r   r(   r)   N)r8   r9   r:   r;   r=   r   r>   r?   rs   r   rC   rd   r   r)   r/   r7   r6   rq   rq   ·   sŠ   € € € € € € ðð ð
 %€Jà€K�ÐÐÑØ!"Ð˜3Ð"Ð"Ñ"Ø €N�EÐ Ð Ñ Ø€GˆU�S‰[ÐÐÑØ Ð˜Ð Ð Ñ Ø#Ð�uÐ#Ð#Ñ#Ð#Ð#r7   rq   c                   ó  ‡ — e Zd ZU dZdZdZeeee	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z  dz  ed<   dZeez  dz  ed	<   dZeez  dz  ed
<   dZeez  dz  ed<   dZeed<   ˆ fd„Zed„ ¦   «         Zej        d„ ¦   «         Zˆ xZS )Ú
Sam3ConfigaD  
    geometry_encoder_config (`dict` or `Sam3GeometryEncoderConfig`, *optional*):
        Configuration for the geometry encoder.
    detr_encoder_config (`dict` or `Sam3DETREncoderConfig`, *optional*):
        Configuration for the DETR encoder.
    detr_decoder_config (`dict` or `Sam3DETRDecoderConfig`, *optional*):
        Configuration for the DETR decoder.
    mask_decoder_config (`dict` or `Sam3MaskDecoderConfig`, *optional*):
        Configuration for the mask decoder.

    Example:
    ```python
    >>> from transformers import Sam3Config, Sam3Model

    >>> # Initializing a SAM3 configuration
    >>> configuration = Sam3Config()

    >>> # Initializing a model from the configuration
    >>> model = Sam3Model(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```
    Úsam3T)rH   Útext_configÚgeometry_encoder_configÚdetr_encoder_configÚdetr_decoder_configÚmask_decoder_configNrH   rw   rx   ry   rz   r{   r(   r)   c                 óÀ  •— | j         €t          ¦   «         | _         t          | j         t          ¦  «        rt          d
i | j         ¤Ž| _         | j        €t          d
i ddddddddd	œ¤Ž| _        t          | j        t          ¦  «        rt          d
i | j        ¤Ž| _        | j        €t          ¦   «         | _        t          | j        t          ¦  «        rt          d
i | j        ¤Ž| _        | j        €t          ¦   «         | _        t          | j        t          ¦  «        rt          d
i | j        ¤Ž| _        | j
        €t          ¦   «         | _
        t          | j
        t          ¦  «        rt          d
i | j
        ¤Ž| _
        | j        €t          ¦   «         | _        t          | j        t          ¦  «        rt          d
i | j        ¤Ž| _         t          ¦   «         j        d
i |¤Ž d S )Ni Á  r   i   i   r"   r   r   r   )Ú
vocab_sizer   r   Úprojection_dimr   r   Úmax_position_embeddingsr   r/   )rH   rG   rQ   rR   rw   r   rx   r^   ry   rh   rz   rl   r{   rq   r0   r1   r2   s     €r6   r1   zSam3Config.__post_init__ø   sü  ø€ ØÔÐ%Ý!1Ñ!3Ô!3ˆDÔÝ�dÔ(­$Ñ/Ô/ð 	HÝ!1Ð!GÐ!G°DÔ4FÐ!GÐ!GˆDÔàÔÐ#Ý-ð  ð  à"'Ø#'Ø)-Ø&)Ø)+Ø+-Ø/1Ø"(ð	ð 	ð ð  ˆDÔõ �dÔ&­Ñ-Ô-ð 	BÝ-ÐAÐA°Ô0@ÐAÐAˆDÔàÔ'Ð/Ý+DÑ+FÔ+FˆDÔ(Ý�dÔ2µDÑ9Ô9ð 	eÝ+DÐ+dÐ+dÀtÔGcÐ+dÐ+dˆDÔ(àÔ#Ð+Ý'<Ñ'>Ô'>ˆDÔ$Ý�dÔ.µÑ5Ô5ð 	YÝ'<Ð'XÐ'X¸tÔ?WÐ'XÐ'XˆDÔ$àÔ#Ð+Ý'<Ñ'>Ô'>ˆDÔ$Ý�dÔ.µÑ5Ô5ð 	YÝ'<Ð'XÐ'X¸tÔ?WÐ'XÐ'XˆDÔ$àÔ#Ð+Ý'<Ñ'>Ô'>ˆDÔ$Ý�dÔ.µÑ5Ô5ð 	YÝ'<Ð'XÐ'X¸tÔ?WÐ'XÐ'XˆDÔ$à�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r7   c                 ó   — | j         j        S )zImage size for the SAM3 model.©rH   r   rV   s    r6   r   zSam3Config.image_size$  s   € ð Ô!Ô,Ð,r7   c                 ó   — || j         _        dS )z2Set the image size and propagate to vision config.Nr�   rX   s     r6   r   zSam3Config.image_size)  s   € ð ).ˆÔÔ%Ð%Ð%r7   )r8   r9   r:   r;   r=   Úis_compositionrG   r   r^   rh   rl   rq   rZ   rH   rR   r   r?   rw   rx   ry   rz   r{   r)   rC   r1   r[   r   r\   rD   rE   s   @r6   ru   ru   É   sb  ø€ € € € € € ðð ð2 €JØ€Nà)Ø%Ø#<Ø4Ø4Ø4ðð €Kð 59€M�4Ð*Ñ*¨TÑ1Ð8Ð8Ñ8Ø26€K�Ð(Ñ(¨4Ñ/Ð6Ð6Ñ6Ø>BÐ˜TÐ$4Ñ4°tÑ;ÐBÐBÑBØ:>Ð˜Ð 0Ñ0°4Ñ7Ð>Ð>Ñ>Ø:>Ð˜Ð 0Ñ0°4Ñ7Ð>Ð>Ñ>Ø:>Ð˜Ð 0Ñ0°4Ñ7Ð>Ð>Ñ>Ø#Ð�uÐ#Ð#Ñ#ð*(ð *(ð *(ð *(ð *(ðX ð-ð -ñ „Xð-ð Ôð.ð .ñ Ôð.ð .ð .ð .ð .r7   ru   )ru   r   rG   r^   rh   rl   rq   N)r;   Úhuggingface_hub.dataclassesr   Útransformersr   Úconfiguration_utilsr   Úutilsr   Úautor	   r
   r   rG   r^   rh   rl   rq   ru   Ú__all__r/   r7   r6   ú<module>rŠ      s¶  ðð Ð à .Ð .Ð .Ð .Ð .Ð .à 'Ð 'Ð 'Ð 'Ð 'Ð 'à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø #Ð #Ð #Ð #Ð #Ð #Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ð €˜?Ð+Ñ+Ô+Øð&7ð &7ð &7ð &7ð &7Ð$ñ &7ô &7ñ „ñ ,Ô+ð&7ðR €˜?Ð+Ñ+Ô+Øð-0ð -0ð -0ð -0ð -0Ð'ñ -0ô -0ñ „ñ ,Ô+ð-0ð` €˜?Ð+Ñ+Ô+Øð$ð $ð $ð $ð $Ð 0ñ $ô $ñ „ñ ,Ô+ð$ð( €˜?Ð+Ñ+Ô+Øð$ð $ð $ð $ð $Ð,ñ $ô $ñ „ñ ,Ô+ð$ð& €˜?Ð+Ñ+Ô+Øð$ð $ð $ð $ð $Ð,ñ $ô $ñ „ñ ,Ô+ð$ð( €˜?Ð+Ñ+Ô+Øð$ð $ð $ð $ð $Ð,ñ $ô $ñ „ñ ,Ô+ð$ð  €˜?Ð+Ñ+Ô+Øða.ð a.ð a.ð a.ð a.Ð!ñ a.ô a.ñ „ñ ,Ô+ða.ðHð ð €€€r7   