ó
    ˆŽ¡j�*  ã                   ó¢  • S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	  \" SS	9\ " S
 S\5      5       5       r
\" SS	9\ " S S\5      5       5       r\" SS	9\ " S S\5      5       5       r\" SS	9\ " S S\5      5       5       r\" SS	9\ " S S\5      5       5       r\" SS	9\ " S S\5      5       5       r\" SS	9\ " S S\5      5       5       r/ SQrg)zSAM3 model configurationé    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringé   )ÚCONFIG_MAPPINGÚ
AutoConfigzfacebook/sam3)Ú
checkpointc                   ó   ^ • \ rS rSr% SrSrSrSrSr\	\
S'   Sr\	\
S	'   S
r\	\
S'   Sr\	\
S'   Sr\	\
S'   Sr\	\\	   -  \\	\	4   -  \
S'   Sr\	\\	   -  \\	\	4   -  \
S'   Sr\\
S'   Sr\\
S'   Sr\\	-  \
S'   Sr\	\
S'   Sr\\	   S-  \
S'   Sr\S-  \
S'   Sr\	\\	   -  \\	\	4   -  \
S '   Sr\\	-  \
S!'   S"r\\
S#'   Sr\S-  \
S$'   U 4S% jr S&r!U =r"$ )'ÚSam3ViTConfigé   a¸  
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Úaxialé   Úhidden_sizei€  Úintermediate_sizeé    Únum_hidden_layersé   Únum_attention_headsr   Únum_channelsið  Ú
image_sizeé   Ú
patch_sizeÚgeluÚ
hidden_actç�íµ ÷Æ°>Úlayer_norm_epsç        Úattention_dropouté   Úwindow_sizeNÚglobal_attn_indexesÚlayer_scale_init_valueiP  Úpretrain_image_sizeÚhidden_dropoutç{®Gáz”?Úinitializer_rangeÚrope_parametersc                 óR   >• U R                   c	  / SQU l         [        TU ]  " S0 UD6  g )N)é   é   r   é   © )r$   ÚsuperÚ__post_init__©ÚselfÚkwargsÚ	__class__s     €Ú¹C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\transformers/models/sam3/configuration_sam3.pyr1   ÚSam3ViTConfig.__post_init__;   s'   ø€ Ø×#Ñ#Ñ+Ú'6ˆDÔ$ä‰ÒÑ' Ó'ó    )r$   )#Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úbase_config_keyÚ
model_typeÚdefault_rope_typer   ÚintÚ__annotations__r   r   r   r   r   ÚlistÚtupler   r   Ústrr   Úfloatr!   r#   r$   r%   r&   r'   r)   r*   Údictr1   Ú__static_attributes__Ú__classcell__©r5   s   @r6   r   r      s.  ø‡ ñ	ð (€OØ!€JØÐà€K�ÓØ!Ð�sÓ!ØÐ�sÓØ!Ð˜Ó!Ø€L�#ÓØ48€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó8Ø46€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó6Ø€J�ÓØ €N�EÓ Ø%(Ð�u˜s‘{Ó(Ø€K�ÓØ,0Ð˜˜c™ TÑ)Ó0Ø+/Ð˜E D™LÓ/Ø=@Ð˜˜t C™y™¨5°°c°©?Ñ:Ó@Ø"%€N�E˜C‘KÓ%Ø#Ð�uÓ#Ø#'€O�T˜D‘[Ó'÷(ó (r8   r   c                   óò   ^ • \ rS rSr% SrSrSrS\0rSr	\
\-  S-  \S'   Sr\\S'   Sr\S-  \S	'   Sr\\   S-  \S
'   Sr\\S'   Sr\\S'   Sr\\S'   U 4S jr\S 5       r\R4                  S 5       rSrU =r$ )ÚSam3VisionConfigéB   aÒ  
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                 óÌ  >• U R                   c  / SQOU R                   U l         U R                  c  SS/SS/SS//U l        [        U R                  [        5      (       aU  U R                  R                  SS5      U R                  S'   [        U R                  S      " S0 U R                  D6U l        O U R                  c  [        S   " 5       U l        [        TU ]   " S0 UD6  g )N)g      @g       @g      ð?g      à?i   é�   éH   r?   r   r/   )	rS   rR   Ú
isinstancer   rG   Úgetr   r0   r1   r2   s     €r6   r1   ÚSam3VisionConfig.__post_init__\   sÒ   ø€ Ø59×5GÑ5GÑ5OÓ1ÐUY×UgÑUgˆÔØ×&Ñ&Ñ.Ø,/°¨:¸¸S°zÀBÈÀ8Ð*LˆDÔ'ä�d×*Ñ*¬D×1Ñ1Ø15×1EÑ1E×1IÑ1IÈ,ÐXhÓ1iˆD× Ñ  Ñ.Ü#1°$×2FÑ2FÀ|Ñ2TÒ#UÑ#mÐX\×XlÑXlÑ#mˆDÕ Ø×!Ñ!Ñ)Ü#1Ð2BÒ#CÓ#EˆDÔ ä‰ÒÑ' Ó'r8   c                 ó.   • U R                   R                  $ )z"Image size for the vision encoder.©r   r   ©r3   s    r6   r   ÚSam3VisionConfig.image_sizei   s   € ð ×#Ñ#×.Ñ.Ð.r8   c                 ó$   • XR                   l        g)z-Set the image size and propagate to backbone.Nr[   ©r3   Úvalues     r6   r   r]   n   s   € ð +0×ÑÕ'r8   )r   rR   rS   )r9   r:   r;   r<   r=   r>   r?   r	   Úsub_configsr   rG   r   rB   rQ   rA   rR   rC   rS   rF   r   rE   r   r)   r1   Úpropertyr   ÚsetterrH   rI   rJ   s   @r6   rL   rL   B   sµ   ø‡ ñð &€OØ$€Jà˜:ð€Kð 7;€O�TÐ,Ñ,¨tÑ3Ó:Ø€O�SÓØ*.Ð˜D 4™KÓ.Ø(,€M�4˜‘; Ñ%Ó,Ø€J�ÓØ €N�EÓ Ø#Ð�uÓ#õ(ð ñ/ó ð/ð ×Ññ0ó ö0r8   rL   c                   ó¶   • \ rS rSr% SrSrSr\\S'   Sr	\\S'   Sr
\\S	'   S
r\\S'   Sr\\-  \S'   Sr\\S'   Sr\\-  \S'   Sr\\S'   Sr\\S'   Sr\\S'   Srg)ÚSam3GeometryEncoderConfigét   zW
roi_size (`int`, *optional*, defaults to 7):
    ROI size for box pooling operations.
Úsam3_geometry_encoderrP   r   r   Ú
num_layersé   r   é   r   çš™™™™™¹?ÚdropoutÚrelur   r    r'   r   r   r,   Úroi_sizer(   r)   r/   N)r9   r:   r;   r<   r=   r?   r   rA   rB   rh   r   r   rl   rF   r   rE   r'   r   rn   r)   rH   r/   r8   r6   re   re   t   s}   ‡ ñð
 )€Jà€K�ÓØ€J�ÓØ Ð˜Ó Ø!Ð�sÓ!Ø€GˆU�S‰[ÓØ€J�ÓØ"%€N�E˜C‘KÓ%Ø €N�EÓ Ø€HˆcÓØ#Ð�uÖ#r8   re   c                   ó¨   • \ rS rSr% SrSrSr\\S'   Sr	\\S'   Sr
\\S	'   S
r\\S'   Sr\\-  \S'   Sr\\S'   Sr\\-  \S'   Sr\\S'   Sr\\S'   Srg)ÚSam3DETREncoderConfigéŠ   zc
hidden_dropout (`float`, *optional*, defaults to 0.0):
    Dropout probability for hidden states.
Úsam3_detr_encoderrP   r   é   rh   ri   r   rj   r   rk   rl   rm   r   r    r'   r   r   r(   r)   r/   N)r9   r:   r;   r<   r=   r?   r   rA   rB   rh   r   r   rl   rF   r   rE   r'   r   r)   rH   r/   r8   r6   rp   rp   Š   ss   ‡ ñð
 %€Jà€K�ÓØ€J�ÓØ Ð˜Ó Ø!Ð�sÓ!Ø€GˆU�S‰[ÓØ€J�ÓØ"%€N�E˜C‘KÓ%Ø €N�EÓ Ø#Ð�uÖ#r8   rp   c                   ó¶   • \ rS rSr% SrSrSr\\S'   Sr	\\S'   Sr
\\S	'   S
r\\S'   Sr\\S'   Sr\\-  \S'   Sr\\S'   Sr\\-  \S'   Sr\\S'   Sr\\S'   Srg)ÚSam3DETRDecoderConfigéŸ   zQ
num_queries (`int`, *optional*, defaults to 200):
    Number of object queries.
Úsam3_detr_decoderrP   r   rs   rh   éÈ   Únum_queriesri   r   rj   r   rk   rl   rm   r   r    r'   r   r   r(   r)   r/   N)r9   r:   r;   r<   r=   r?   r   rA   rB   rh   ry   r   r   rl   rF   r   rE   r'   r   r)   rH   r/   r8   r6   ru   ru   Ÿ   s}   ‡ ñð
 %€Jà€K�ÓØ€J�ÓØ€K�ÓØ Ð˜Ó Ø!Ð�sÓ!Ø€GˆU�S‰[ÓØ€J�ÓØ"%€N�E˜C‘KÓ%Ø €N�EÓ Ø#Ð�uÖ#r8   ru   c                   óx   • \ rS rSr% SrSrSr\\S'   Sr	\\S'   Sr
\\S	'   S
r\\-  \S'   Sr\\S'   Sr\\S'   Srg)ÚSam3MaskDecoderConfigéµ   zw
num_upsampling_stages (`int`, *optional*, defaults to 3):
    Number of upsampling stages in the pixel decoder (FPN).
Úsam3_mask_decoderrP   r   r   Únum_upsampling_stagesr   r   r    rl   ri   r   r(   r)   r/   N)r9   r:   r;   r<   r=   r?   r   rA   rB   r~   r   rF   rl   r   r)   rH   r/   r8   r6   r{   r{   µ   sQ   ‡ ñð
 %€Jà€K�ÓØ!"Ð˜3Ó"Ø €N�EÓ Ø€GˆU�S‰[ÓØ Ð˜Ó Ø#Ð�uÖ#r8   r{   c                   ó&  ^ • \ rS rSr% SrSrSr\\\	\
\\S.rSr\\-  S-  \S'   Sr\\-  S-  \S'   Sr\\-  S-  \S	'   Sr\\-  S-  \S
'   Sr\\-  S-  \S'   Sr\\-  S-  \S'   Sr\\S'   U 4S jr\S 5       r\R8                  S 5       rSrU =r$ )Ú
Sam3ConfigéÇ   aø  
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)rN   Útext_configÚgeometry_encoder_configÚdetr_encoder_configÚdetr_decoder_configÚmask_decoder_configNrN   rƒ   r„   r…   r†   r‡   r(   r)   c                 óz  >• U R                   c  [        5       U l         [        U R                   [        5      (       a  [        S0 U R                   D6U l         U R                  c  [
        S   " S0 SSSSSSSS	S
.D6U l        [        U R                  [        5      (       a8  [
        U R                  R                  SS5         " S0 U R                  D6U l        U R                  c  [        5       U l        [        U R                  [        5      (       a  [        S0 U R                  D6U l        U R                  c  [        5       U l	        [        U R                  [        5      (       a  [        S0 U R                  D6U l	        U R                  c  [        5       U l        [        U R                  [        5      (       a  [        S0 U R                  D6U l        U R                  c  [        5       U l        [        U R                  [        5      (       a  [        S0 U R                  D6U l        [        TU ]@  " S0 UD6  g )NÚclip_text_modeli Á  r   i   i   r"   r   r   r   )Ú
vocab_sizer   r   Úprojection_dimr   r   Úmax_position_embeddingsr   r?   r/   )rN   rL   rW   rG   rƒ   r   rX   r„   re   r…   rp   r†   ru   r‡   r{   r0   r1   r2   s     €r6   r1   ÚSam3Config.__post_init__ö   sß  ø€ Ø×ÑÑ%Ü!1Ó!3ˆDÔÜ�d×(Ñ(¬$×/Ñ/Ü!1Ñ!G°D×4FÑ4FÑ!GˆDÔà×ÑÑ#Ü-Ð.?Ò@ñ  à"'Ø#'Ø)-Ø&)Ø)+Ø+-Ø/1Ø"(ñ	ñ ˆDÔô �d×&Ñ&¬×-Ñ-Ü-¨d×.>Ñ.>×.BÑ.BÀ<ÐQbÓ.cÒdñ  Ø×"Ñ"ñ ˆDÔð ×'Ñ'Ñ/Ü+DÓ+FˆDÔ(Ü�d×2Ñ2´D×9Ñ9Ü+DÑ+dÀt×GcÑGcÑ+dˆDÔ(à×#Ñ#Ñ+Ü'<Ó'>ˆDÔ$Ü�d×.Ñ.´×5Ñ5Ü'<Ñ'X¸t×?WÑ?WÑ'XˆDÔ$à×#Ñ#Ñ+Ü'<Ó'>ˆDÔ$Ü�d×.Ñ.´×5Ñ5Ü'<Ñ'X¸t×?WÑ?WÑ'XˆDÔ$à×#Ñ#Ñ+Ü'<Ó'>ˆDÔ$Ü�d×.Ñ.´×5Ñ5Ü'<Ñ'X¸t×?WÑ?WÑ'XˆDÔ$ä‰ÒÑ' Ó'r8   c                 ó.   • U R                   R                  $ )zImage size for the SAM3 model.©rN   r   r\   s    r6   r   ÚSam3Config.image_size$  s   € ð ×!Ñ!×,Ñ,Ð,r8   c                 ó$   • XR                   l        g)z2Set the image size and propagate to vision config.Nr�   r_   s     r6   r   r�   )  s   € ð ).×ÑÕ%r8   )r†   r…   r„   r‡   rƒ   rN   )r9   r:   r;   r<   r=   r?   Úis_compositionrL   r	   re   rp   ru   r{   ra   rN   rG   r   rB   rƒ   r„   r…   r†   r‡   r)   rF   r1   rb   r   rc   rH   rI   rJ   s   @r6   r€   r€   Ç   sð   ø‡ ñð2 €JØ€Nà)Ø!Ø#<Ø4Ø4Ø4ñ€Kð 59€M�4Ð*Ñ*¨TÑ1Ó8Ø26€K�Ð(Ñ(¨4Ñ/Ó6Ø>BÐ˜TÐ$4Ñ4°tÑ;ÓBØ:>Ð˜Ð 0Ñ0°4Ñ7Ó>Ø:>Ð˜Ð 0Ñ0°4Ñ7Ó>Ø:>Ð˜Ð 0Ñ0°4Ñ7Ó>Ø#Ð�uÓ#õ,(ð\ ñ-ó ð-ð ×Ññ.ó ö.r8   r€   )r€   r   rL   re   rp   ru   r{   N)r=   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   Úautor   r	   r   rL   re   rp   ru   r{   r€   Ú__all__r/   r8   r6   Ú<module>r˜      sB  ðñ å .å 3Ý #ß -ñ ˜?Ñ+Øô&(Ð$ó &(ó ó ,ð&(ñR ˜?Ñ+Øô-0Ð'ó -0ó ó ,ð-0ñ` ˜?Ñ+Øô$Ð 0ó $ó ó ,ð$ñ( ˜?Ñ+Øô$Ð,ó $ó ó ,ð$ñ& ˜?Ñ+Øô$Ð,ó $ó ó ,ð$ñ( ˜?Ñ+Øô$Ð,ó $ó ó ,ð$ñ  ˜?Ñ+Øôc.Ð!ó c.ó ó ,ðc.òL�r8   