+
    œ°³j.  ã                   ó  € R t ^ RIt^ RIHt ^ RIHt ^RIHtHt ^RIH	t	 ^RI
HtHtHt ^RIHt ^RIHtHtHt ^R	IHtHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIH t H!t!H"t"H#t# ]! RR7      ] ! R R]4      4       4       t$ ! R R]"4      t% ! R R]PL                  4      t' ! R R] 4      t( ! R R]4      t) ! R R]4      t* ! R R]!4      t+ ! R R ]#4      t,] ! R! R"],4      4       t-]! R#R$7       ! R% R&]],4      4       t.. R'Ot/R# )(zPyTorch Pixio model.N)Ústrict)Únn)ÚBackboneMixinÚfilter_output_hidden_states)Úcreate_bidirectional_mask)ÚBackboneOutputÚBaseModelOutputÚBaseModelOutputWithPooling)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚ
is_tracing)Úcan_return_tupleÚmerge_with_config_defaults)Úcapture_outputs)ÚDinov2Config)Ú	Dinov2MLP)ÚSwinDropPath)ÚViTAttentionÚViTLayerÚViTPatchEmbeddingsÚViTPreTrainedModelzfacebook/pixio-huge)Ú
checkpointc                   óv   a € ] tR t^!t o RtRtRt^ t^t^t	Rt
^t]! 4       t]! 4       t]! 4       tV 3R ltRtV tR# )ÚPixioConfiga³  
apply_layernorm (`bool`, *optional*, defaults to `True`):
    Whether to apply layer normalization to the feature maps in case the model is used as backbone.
reshape_hidden_states (`bool`, *optional*, defaults to `True`):
    Whether to reshape the feature maps to 4D tensors of shape `(batch_size, hidden_size, height, width)` in
    case the model is used as backbone. If `False`, the feature maps will be 3D tensors of shape `(batch_size,
    seq_len, hidden_size)`.
n_cls_tokens (`int`, *optional*, defaults to 8):
    Number of class tokens in the Transformer encoder.

Example:

```python
>>> from transformers import PixioConfig, PixioModel

>>> # Initializing a Pixio pixio-huge style configuration
>>> configuration = PixioConfig()

>>> # Initializing a model (with random weights) from the pixio-huge style configuration
>>> model = PixioModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```Úpixioi   é   c                óî   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ S[S[ ,          ,          S[S[ S[ 3,          ,          ;R&   S[ S[S[ ,          ,          S[S[ S[ 3,          ,          ;R&   # )é   Úhidden_sizeÚnum_hidden_layersÚnum_attention_headsÚn_cls_tokensÚ
image_sizeÚ
patch_size)ÚintÚlistÚtuple)ÚformatÚ__classdict__s   "€Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/pixio/modular_pixio.pyÚ__annotate__ÚPixioConfig.__annotate__!   s…   ø‡ ‚ ñ< Ññ= ñ> Ññ? ñ@ Ñ!ñA ñB ÑñC ñD ‘d™3•i•¡%©©S¨¥/Õ1Ñ7ñE ñF ‘d™3•i•¡%©©S¨¥/Õ1Ñ6òG ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typer   r    r!   r"   r#   r$   ÚAttributeErrorÚlayerscale_valueÚuse_swiglu_ffnÚuse_mask_tokenÚ__annotate_func__Ú__static_attributes__Ú__classdictcell__)r)   s   @r*   r   r   !   sR   ø‡ € ñð2 €Jà€KØÐØ!ÐØ€LØ47€JØ46€Já%Ó'ÐÙ#Ó%€NÙ#Ó%€N÷O ƒ r-   r   c                   ó   € ] tR t^KtRtR# )ÚPixioPatchEmbeddingsr.   N©r/   r0   r1   r2   r:   r.   r-   r*   r=   r=   K   ó   † Ûr-   r=   c                   óf   a a€ ] tR t^Ot oRtV3R lV 3R lltV3R lR ltV3R lR ltRtVt	V ;t
# )	ÚPixioEmbeddingsz:
Construct the CLS tokens, position and patch embeddings.
c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   ÚconfigÚreturnN©r   )r(   r)   s   "€r*   r+   ÚPixioEmbeddings.__annotate__T   s   ø€ ÷ ñ ™{ð ¨tñ r-   c                ó8  <€ \         SV `  4        \        P                  ! \        P
                  ! ^VP                  VP                  4      4      V n        RV n	        \        V4      V n        V P                  P                  p\        P                  ! \        P
                  ! ^W!P                  ,           VP                  4      4      V n        \        P                  ! VP                  4      V n        VP                  V n        VP"                  V n        Wn        R# )é   N)ÚsuperÚ__init__r   Ú	ParameterÚtorchÚrandnr"   r   Ú	cls_tokenÚ
mask_tokenr=   Úpatch_embeddingsÚnum_patchesÚposition_embeddingsÚDropoutÚhidden_dropout_probÚdropoutr$   rC   )ÚselfrC   rQ   Ú	__class__s   && €r*   rJ   ÚPixioEmbeddings.__init__T   sÀ   ø€ Ü‰ÑÔäŸš¤e§k¢k°!°V×5HÑ5HÈ&×J\ÑJ\Ó&]Ó^ˆŒØˆŒÜ 4°VÓ <ˆÔØ×+Ñ+×7Ñ7ˆÜ#%§<¢<´·²¸A¸{×M`ÑM`Õ?`Ðbh×btÑbtÓ0uÓ#vˆÔ Ü—z’z &×"<Ñ"<Ó=ˆŒØ"×/Ñ/ˆÔØ ×+Ñ+ˆŒØŽr-   c                óZ   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[ P                  /# )r   Ú
embeddingsÚheightÚwidthrD   )rL   ÚTensorr%   )r(   r)   s   "€r*   r+   rF   a   s;   ø€ ÷ $Dñ $D±5·<±<ð $DÉð $DÑUXð $DÑ]b×]iÑ]iñ $Dr-   c                ó�  € VP                   ^,          V P                  ,
          pV P                  P                   ^,          V P                  ,
          p\        4       '       g   WE8X  d   W#8X  d   V P                  # V P                  RRV P                  13,          pV P                  RV P                  R13,          pVP                   R	,          pW P                  ,          p	W0P                  ,          p
\        VR,          4      pVP                  ^W»V4      pVP                  ^ ^^^4      pVP                  p\        P                  P                  VP                  \        P                  4      Wš3RRR7      P                  VR7      pVP                  ^ ^^^4      P                  ^R	V4      p\        P                   ! Wg3^R7      # )
aó  
This method allows to interpolate the pre-trained position encodings, to be able to use the model on higher
resolution images. This method is also adapted to support tracing and interpolation at torch.float32 precision.

Adapted from:
- https://github.com/facebookresearch/dino/blob/de9ee3df6cf39fac952ab558447af1fa1365362a/vision_transformer.py#L174-L194, and
- https://github.com/facebookresearch/dinov2/blob/e1277af2ba9496fbadf7aec6eba56e8d882d1e35/dinov2/models/vision_transformer.py#L179-L211
ºNNNNg      à?ÚbicubicF)ÚsizeÚmodeÚalign_corners©Údtype©Údiméÿÿÿÿ)Úshaper"   rR   r   r$   r%   ÚreshapeÚpermutere   r   Ú
functionalÚinterpolateÚtorL   Úfloat32ÚviewÚcat)rV   rZ   r[   r\   rQ   Únum_positionsÚclass_pos_embedÚpatch_pos_embedrg   Ú
new_heightÚ	new_widthÚsqrt_num_positionsÚtarget_dtypes   &&&&         r*   Úinterpolate_pos_encodingÚ(PixioEmbeddings.interpolate_pos_encodinga   s�  € ð !×&Ñ& qÕ)¨D×,=Ñ,=Õ=ˆØ×0Ñ0×6Ñ6°qÕ9¸D×<MÑ<MÕMˆä�|Š| Ô <ÀÄØ×+Ñ+Ð+à×2Ñ2°1Ð6I¸×8IÑ8IÐ6IÐ3IÕJˆØ×2Ñ2°1°d×6GÑ6GÑ6IÐ3IÕJˆà×Ñ˜rÕ"ˆàŸ™Õ.ˆ
ØŸ_™_Õ,ˆ	ä  °Õ!3Ó4ÐØ)×1Ñ1°!Ð5GÐ]`ÓaˆØ)×1Ñ1°!°Q¸¸1Ó=ˆØ&×,Ñ,ˆÜŸ-™-×3Ñ3Ø×ÑœuŸ}™}Ó-ØÐ(ØØð	 4ó 
÷
 ‰"�<ˆ"Ó
 ð 	ð *×1Ñ1°!°Q¸¸1Ó=×BÑBÀ1ÀbÈ#ÓNˆä�yŠy˜/Ð;ÀÔCÐCr-   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úpixel_valuesrD   )rL   r]   )r(   r)   s   "€r*   r+   rF   ‡   s#   ø€ ÷ ñ ¡E§L¡Lð ±U·\±\ñ r-   c                óx  € VP                   w  r#rEV P                  P                  P                  P                  pV P                  VP                  VR 7      4      pV P                  P                  VRR4      p\        P                  ! W‡3^R7      pWpP                  WtV4      ,           pV P                  V4      pV# )rd   rf   rh   )ri   rP   Ú
projectionÚweightre   rn   rN   ÚexpandrL   rq   ry   rU   )	rV   r|   Ú
batch_sizeÚ_r[   r\   rx   rZ   Ú
cls_tokenss	   &&       r*   ÚforwardÚPixioEmbeddings.forward‡   sŸ   € Ø'3×'9Ñ'9Ñ$ˆ
�vØ×,Ñ,×7Ñ7×>Ñ>×DÑDˆØ×*Ñ*¨<¯?©?À¨?Ó+NÓOˆ
à—^‘^×*Ñ*¨:°r¸2Ó>ˆ
Ü—Y’Y 
Ð7¸QÔ?ˆ
à×"?Ñ"?À
ÐTYÓ"ZÕZˆ
à—\‘\ *Ó-ˆ
àÐr-   )rN   rC   rU   rO   r"   rP   r$   rR   )r/   r0   r1   r2   r3   rJ   ry   r„   r:   r;   Ú__classcell__©rW   r)   s   @@r*   rA   rA   O   s0   ù‡ € ñ÷ó ÷$Dð $D÷L÷ ð r-   rA   c                   ó   € ] tR t^–tRtR# )ÚPixioAttentionr.   Nr>   r.   r-   r*   r‰   r‰   –   r?   r-   r‰   c                   ó   € ] tR t^štRtR# )ÚPixioMLPr.   Nr>   r.   r-   r*   r‹   r‹   š   r?   r-   r‹   c                   ó   € ] tR t^žtRtR# )ÚPixioDropPathr.   Nr>   r.   r-   r*   r�   r�   ž   r?   r-   r�   c                   óT   a a€ ] tR t^¢t oV3R lV 3R lltRV3R lR lltRtVtV ;t# )Ú
PixioLayerc                ó    <€ V ^8„  d   QhRS[ /# ©r   rC   rE   )r(   r)   s   "€r*   r+   ÚPixioLayer.__annotate__£   s   ø€ ÷ pñ p™{ñ pr-   c                ó´   <€ \         SV `  V4       VP                  R 8”  d   \        VP                  4      V n        R# \        P
                  ! 4       V n        R# )g        N)rI   rJ   Údrop_path_rater�   r   ÚIdentityÚ	drop_path)rV   rC   rW   s   &&€r*   rJ   ÚPixioLayer.__init__£   s@   ø€ Ü‰Ñ˜Ô ØAG×AVÑAVÐY\ÔA\œ v×'<Ñ'<Ó=ˆŽÔbd×bmÒbmÓboˆŽr-   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# )r   Úhidden_statesÚattention_maskNÚkwargsrD   )rL   r]   r
   r   )r(   r)   s   "€r*   r+   r’   §   sJ   ø€ ÷ ñ á—|‘|ðñ Ÿ™ tÕ+ðñ Ñ+Õ,ð	ñ
 
�‰ñr-   c                óB  € TpV P                  V4      pV P                  ! W3/ VB w  rV P                  V4      pV P                  V4      V,           pTpV P	                  V4      pV P                  V4      pV P                  V4      pV P                  V4      V,           pV# ©N)Úlayernorm_beforeÚ	attentionrU   r–   Úlayernorm_afterÚmlp)rV   r™   rš   r›   Úresidualr‚   s   &&&,  r*   r„   ÚPixioLayer.forward§   sš   € ð !ˆØ×-Ñ-¨mÓ<ˆØŸ>š>¨-ÑRÈ6ÑRÑˆØŸ™ ]Ó3ˆØŸ™ }Ó5¸Õ@ˆà ˆØ×,Ñ,¨]Ó;ˆØŸ™ Ó/ˆØŸ™ ]Ó3ˆØŸ™ }Ó5¸Õ@ˆàÐr-   )r–   r�   )	r/   r0   r1   r2   rJ   r„   r:   r;   r†   r‡   s   @@r*   r�   r�   ¢   s    ù‡ € ÷pó p÷÷ ò r-   r�   c                   ó   € ] tR t^¼tRtR# )ÚPixioPreTrainedModelr.   Nr>   r.   r-   r*   r¥   r¥   ¼   r?   r-   r¥   c                   ó€   a a€ ] tR t^Àt oV3R lV 3R llt]]! RR7      ]RV3R lR ll4       4       4       tRt	Vt
V ;t# )	Ú
PixioModelc                ó    <€ V ^8„  d   QhRS[ /# r‘   rE   )r(   r)   s   "€r*   r+   ÚPixioModel.__annotate__Â   s   ø€ ÷ 	ñ 	™{ñ 	r-   c                ól  <€ \         SV `  V4       Wn        \        V4      V n        \
        P                  ! \        VP                  4       Uu. uF  p\        V4      NK  	  up4      V n
        \
        P                  ! VP                  VP                  R 7      V n        V P                  4        R# u upi )©ÚepsN)rI   rJ   rC   rA   rZ   r   Ú
ModuleListÚranger    r�   ÚlayersÚ	LayerNormr   Úlayer_norm_epsÚ	layernormÚ	post_init©rV   rC   r‚   rW   s   && €r*   rJ   ÚPixioModel.__init__Â   s€   ø€ Ü‰Ñ˜Ô ØŒä)¨&Ó1ˆŒÜ—m’mÄÀv×G_ÑG_ÔA`Ó$aÑA`¸A¤Z°Ö%7ÑA`Ñ$aÓbˆŒäŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒà�‰Öùò	 %bs   ÁB1F)Útie_last_hidden_statesc                ó†   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[S[,          RS[/# )r   r|   Nrš   r›   rD   )rL   r]   r
   r   r	   )r(   r)   s   "€r*   r+   r©   Ð   sK   ø€ ÷ 
ñ 
á—l‘l TÕ)ð
ñ Ÿ™ tÕ+ð
ñ Ñ+Õ,ð	
ñ
 
$ñ
r-   c                óN  € Vf   \        R4      hV P                  V4      p\        V P                  VVR7      pTpV P                   F  pV! WR3/ VB pK  	  V P                  V4      pVRR V P                  P                  1R3,          P                  ^R7      p\        VVR7      # )Nz You have to specify pixel_values)rC   Úinputs_embedsrš   r_   rf   )Úlast_hidden_stateÚpooler_output)	Ú
ValueErrorrZ   r   rC   r¯   r²   r"   Úmeanr	   )rV   r|   rš   r›   Úembedding_outputr™   ÚlayerÚpooled_outputs   &&&,    r*   r„   ÚPixioModel.forwardÍ   s±   € ð ÒÜÐ?Ó@Ð@àŸ?™?¨<Ó8ÐÜ2Ø—;‘;Ø*Ø)ô
ˆð
 )ˆØ—[”[ˆEÙ! -ÑJÀ6ÑJŠMñ !àŸ™ }Ó5ˆØ% aÐ)G¨4¯?©?×+GÑ+GÐ)GÈÐ&JÕK×PÑPÐUVÐPÓWˆä)Ø+Ø'ô
ð 	
r-   )rC   rZ   r²   r¯   )NN)r/   r0   r1   r2   rJ   r   r   r   r„   r:   r;   r†   r‡   s   @@r*   r§   r§   À   sB   ù‡ € ÷	ó 	ð  Ù¨EÔ2Ø÷
ñ 
ó ó 3ó  ÷
ð 
r-   r§   zN
    Pixio backbone, to be used with frameworks like DETR and MaskFormer.
    )Úcustom_introc                   ór   a a€ ] tR t^ët oV3R lV 3R llt]]]RV3R lR ll4       4       4       tRt	Vt
V ;t# )ÚPixioBackbonec                ó    <€ V ^8„  d   QhRS[ /# r‘   rE   )r(   r)   s   "€r*   r+   ÚPixioBackbone.__annotate__ñ   s   ø€ ÷ ñ ™{ñ r-   c                óF  <€ \         SV `  V4       \        VP                  ^,           4       Uu. uF  q!P                  NK  	  upV n        \        V4      V n        \        P                  ! VP                  VP                  R7      V n        V P                  4        R# u upi )rH   r«   N)rI   rJ   r®   r    r   Únum_featuresr§   r   r   r°   r±   r²   r³   r´   s   && €r*   rJ   ÚPixioBackbone.__init__ñ   sx   ø€ Ü‰Ñ˜Ô ä9>¸v×?WÑ?WÐZ[Õ?[Ô9\Ó]Ñ9\°A×/Ô/Ñ9\Ñ]ˆÔÜ Ó'ˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒà�‰Öùò	 ^s   ¯Bc                óx   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[/# )r   r|   rš   Nr›   rD   )rL   r]   r
   r   r   )r(   r)   s   "€r*   r+   rÆ   ý   sF   ø€ ÷ 6
ñ 6
á—l‘lð6
ñ Ÿ™ tÕ+ð6
ñ Ñ+Õ,ð	6
ñ
 
ñ6
r-   c                óâ  € RVR&   V P                   ! W3/ VB pVP                  p. p\        V P                  V4       EF  w  rxWpP                  9   g   K  V P
                  P                  '       d   V P                  V4      pV P
                  P                  '       d“   VRV P                   P                  P                  R13,          pVP                  w  ršr¼V P
                  P                  pVP                  W›V,          WÍ,          R4      pVP                  ^ ^^^4      P                  4       pVP!                  V4       EK  	  \#        \%        V4      VP                  VP&                  R7      # )a×  
Examples:

```python
>>> from transformers import AutoImageProcessor, AutoBackbone
>>> import torch
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> processor = AutoImageProcessor.from_pretrained("facebook/pixio-huge")
>>> model = AutoBackbone.from_pretrained(
...     "facebook/pixio-huge", out_features=["stage7", "stage15", "stage23", "stage31"]
... )

>>> inputs = processor(image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
[1, 1280, 16, 16]
```TÚoutput_hidden_statesr_   N)Úfeature_mapsr™   Ú
attentionsrh   )r   r™   ÚzipÚstage_namesÚout_featuresrC   Úapply_layernormr²   Úreshape_hidden_statesrZ   r"   ri   r$   rj   rk   Ú
contiguousÚappendr   r'   rÎ   )rV   r|   rš   r›   Úoutputr™   rÍ   ÚstageÚhidden_stater�   r‚   r[   r\   r$   s   &&&,          r*   r„   ÚPixioBackbone.forwardú   s=  € ðF *.ˆÐ%Ñ&à"&§*¢*¨\Ñ"TÈVÑ"TˆØ×,Ñ,ˆàˆÜ#& t×'7Ñ'7¸×#GÑˆEØ×)Ñ)Ö)Ø—;‘;×.×.Ð.Ø#'§>¡>°,Ó#?�LØ—;‘;×4×4Ð4Ø#/°°4·:±:×3HÑ3H×3UÑ3UÑ3WÐ0WÕ#X�LØ3?×3EÑ3EÑ0�J 6Ø!%§¡×!7Ñ!7�JØ#/×#7Ñ#7¸
ÈjÕDXÐZ_ÕZmÐoqÓ#r�LØ#/×#7Ñ#7¸¸1¸aÀÓ#C×#NÑ#NÓ#P�LØ×#Ñ# L×1ñ $Hô Ü˜|Ó,Ø ×.Ñ.Ø×(Ñ(ô
ð 	
r-   )r²   rÈ   r   r�   )r/   r0   r1   r2   rJ   r   r   r   r„   r:   r;   r†   r‡   s   @@r*   rÄ   rÄ   ë   s=   ù‡ € ÷ó ð Ø Ø÷6
ñ 6
ó ó !ó ÷6
ð 6
r-   rÄ   )r   r§   r¥   rÄ   )0r3   rL   Úhuggingface_hub.dataclassesr   r   Úbackbone_utilsr   r   Úmasking_utilsr   Úmodeling_outputsr   r   r	   Úprocessing_utilsr
   Úutilsr   r   r   Úutils.genericr   r   Úutils.output_capturingr   Údinov2.configuration_dinov2r   Údinov2.modeling_dinov2r   Úswin.modeling_swinr   Úvit.modeling_vitr   r   r   r   r   r=   ÚModulerA   r‰   r‹   r�   r�   r¥   r§   rÄ   Ú__all__r.   r-   r*   Ú<module>rè      s  ðñ ã Ý .Ý ç HÝ 6ß [Ñ [Ý &ß CÑ Cß IÝ 5Ý 6Ý .Ý -ß ]Ó ]ñ Ð0Ô1Øô%&�,ó %&ó ó 2ð%&ôP	Ð-ô 	ôD�b—i‘iô DôN	�\ô 	ô	ˆyô 	ô	�Lô 	ô�ô ô4	Ð-ô 	ð ô'
Ð%ó '
ó ð'
ñT ðôô
C
�MÐ#7ó C
óð
C
òL Q‚r-   