+
    œ°³j1H  ã                   óF  € ^ RI HtHt ^ RIt^ RIHt ^RIHt ^RIH	t	 ^RI
HtHt ^RI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HtHt ^RIHtH t  ^RI!H"t" ^RI#H$t$  ! R R]PJ                  4      t& ! R R]PJ                  4      t'R&R R llt( ! R R]PJ                  4      t) ! R R]PJ                  4      t* ! R R]PJ                  4      t+ ! R R]4      t,] ! R R]4      4       t-] ! R  R!]-4      4       t.]! R"R#7       ! R$ R%]]-4      4       t/. R'Ot0R# )(é    )ÚCallableÚIterableN)Únn)Úinitialization)ÚACT2FN)ÚBackboneMixinÚfilter_output_hidden_states)Úcreate_bidirectional_mask)ÚGradientCheckpointingLayer)ÚBackboneOutputÚBaseModelOutputÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚ
is_tracing)Úcan_return_tupleÚmerge_with_config_defaults)Úcapture_outputs©ÚPixioConfigc                   óT   a a€ ] tR t^(t oRtV3R lV 3R lltV3R lR ltRtVtV ;t	# )ÚPixioPatchEmbeddingszÜ
This class turns `pixel_values` of shape `(batch_size, num_channels, height, width)` into the initial
`hidden_states` (patch embeddings) of shape `(batch_size, seq_length, hidden_size)` to be consumed by a
Transformer.
c                ó    <€ V ^8„  d   QhRS[ /# ©é   Úconfigr   )ÚformatÚ__classdict__s   "€Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/pixio/modeling_pixio.pyÚ__annotate__Ú!PixioPatchEmbeddings.__annotate__/   s   ø€ ÷ xñ x™{ñ xó    c                óÎ  <€ \         SV `  4        VP                  pVP                  p\	        V\
        4      '       d   TMW"3p\	        V\
        4      '       d   TMW33pV^,          V^,          ,          V^ ,          V^ ,          ,          ,          V n        W n        W0n        VP                  V n        \        P                  ! VP                  VP                  W3R7      V n        R# )é   )Úkernel_sizeÚstrideN)ÚsuperÚ__init__Ú
image_sizeÚ
patch_sizeÚ
isinstancer   Únum_patchesÚnum_channelsr   ÚConv2dÚhidden_sizeÚ
projection)Úselfr   r,   r-   Ú	__class__s   &&  €r"   r+   ÚPixioPatchEmbeddings.__init__/   s³   ø€ Ü‰ÑÔØ×&Ñ&ˆ
Ø×&Ñ&ˆ
Ü#-¨j¼(×#CÒ#C‘ZÈ*ÐIaˆ
Ü#-¨j¼(×#CÒ#C‘ZÈ*ÐIaˆ
à& q�M¨Z¸­]Õ:¸zÈ!½}ÐPZÐ[\ÕP]Õ?]Õ^ˆÔØ$ŒØ$ŒØ"×/Ñ/ˆÔÜŸ)š) F×$7Ñ$7¸×9KÑ9KÐYcÔwˆŽr%   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   Úpixel_valuesÚreturn©ÚtorchÚTensor)r    r!   s   "€r"   r#   r$   <   s'   ø€ ÷ Hñ H¡E§L¡Lð H±U·\±\ñ Hr%   c                óà   € VP                   ^,          pW P                  8w  d   \        RV P                   RV R24      hV P                  V4      P	                  ^4      P                  ^^4      # )r'   zoMake sure that the channel dimension of the pixel values match with the one set in the configuration. Expected z	 but got Ú.)Úshaper0   Ú
ValueErrorr3   ÚflattenÚ	transpose)r4   r9   r0   s   && r"   ÚforwardÚPixioPatchEmbeddings.forward<   ss   € Ø#×)Ñ)¨!Õ,ˆØ×,Ñ,Ô,ÜðØ!×.Ñ.Ð/¨y¸¸ÀaðIóð ð �‰˜|Ó,×4Ñ4°QÓ7×AÑAÀ!ÀQÓGÐGr%   )r,   r0   r/   r-   r3   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r+   rD   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r5   r!   s   @@r"   r   r   (   s(   ù‡ € ñ÷xó x÷H÷ Hð Hr%   r   c                   óf   a a€ ] tR t^Ft 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   r   r:   Nr   )r    r!   s   "€r"   r#   ÚPixioEmbeddings.__annotate__K   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# )r'   N)r*   r+   r   Ú	Parameterr<   ÚrandnÚn_cls_tokensr2   Ú	cls_tokenÚ
mask_tokenr   Úpatch_embeddingsr/   Úposition_embeddingsÚDropoutÚhidden_dropout_probÚdropoutr-   r   )r4   r   r/   r5   s   && €r"   r+   ÚPixioEmbeddings.__init__K   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Úwidthr:   )r<   r=   Úint)r    r!   s   "€r"   r#   rR   X   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éÿÿÿÿ)r@   rV   rZ   r   r-   rc   ÚreshapeÚpermuterk   r   Ú
functionalÚinterpolateÚtor<   Úfloat32ÚviewÚcat)r4   r`   ra   rb   r/   Únum_positionsÚclass_pos_embedÚpatch_pos_embedrm   Ú
new_heightÚ	new_widthÚsqrt_num_positionsÚtarget_dtypes   &&&&         r"   Úinterpolate_pos_encodingÚ(PixioEmbeddings.interpolate_pos_encodingX   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                  /# r8   r;   )r    r!   s   "€r"   r#   rR   ~   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# )rj   rl   rn   )r@   rY   r3   Úweightrk   rs   rW   Úexpandr<   rv   r~   r]   )	r4   r9   Ú
batch_sizeÚ_ra   rb   r}   r`   Ú
cls_tokenss	   &&       r"   rD   ÚPixioEmbeddings.forward~   sŸ   € Ø'3×'9Ñ'9Ñ$ˆ
�vØ×,Ñ,×7Ñ7×>Ñ>×DÑDˆØ×*Ñ*¨<¯?©?À¨?Ó+NÓOˆ
à—^‘^×*Ñ*¨:°r¸2Ó>ˆ
Ü—Y’Y 
Ð7¸QÔ?ˆ
à×"?Ñ"?À
ÐTYÓ"ZÕZˆ
à—\‘\ *Ó-ˆ
àÐr%   )rW   r   r]   rX   rV   rY   r-   rZ   )rF   rG   rH   rI   rJ   r+   r~   rD   rK   rL   rM   rN   s   @@r"   rP   rP   F   s0   ù‡ € ñ÷ó ÷$Dð $D÷L÷ ð r%   rP   c                ó  € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R,          R\        R	\
        \        ,          /# )
r   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingr]   Úkwargs)r   ÚModuler<   r=   Úfloatr   r   )r    s   "r"   r#   r#   �   s{   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô �T�\ð%ô ð%ô Ô'Õ(ñ%r%   c                 ó  € Vf   VP                  R4      R,          p\        P                  ! WP                  ^^4      4      V,          pVe	   W„,           p\        P
                  P                  VR\        P                  R7      P                  VP                  4      p\        P
                  P                  W†V P                  R7      p\        P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )N)rm   rk   )ÚpÚtrainingrn   ç      à¿)rg   r<   ÚmatmulrC   r   rq   Úsoftmaxrt   rs   rk   r]   r”   Ú
contiguous)
r‰   rŠ   r‹   rŒ   r�   rŽ   r]   r�   Úattn_weightsÚattn_outputs
   &&&&&&&,  r"   Úeager_attention_forwardr›   �   sÉ   € ð ‚Ø—*‘*˜R“. DÕ(ˆô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LàÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$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# )ÚPixioAttentionc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r    r!   s   "€r"   r#   ÚPixioAttention.__annotate__ª   s   ø€ ÷ kñ k™{ñ kr%   c                ó`  <€ \         SV `  4        Wn        VP                  V n        \	        VR VP
                  VP                  ,          4      V n        VP                  V n        V P                  R,          V n	        RV n
        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP                  V P                  ,          VP
                  RR7      V n        R# )Úhead_dimF©ÚbiasTNr•   )r*   r+   r   Únum_attention_headsÚgetattrr2   r¡   Úattention_probs_dropout_probÚattention_dropoutrŽ   Ú	is_causalr   ÚLinearÚqkv_biasÚq_projÚk_projÚv_projÚo_proj©r4   r   r5   s   &&€r"   r+   ÚPixioAttention.__init__ª   s*  ø€ Ü‰ÑÔØŒØ#)×#=Ñ#=ˆÔ Ü ¨
°F×4FÑ4FÈ&×JdÑJdÕ4dÓeˆŒØ!'×!DÑ!DˆÔØ—}‘} dÕ*ˆŒØˆŒä—i’i × 2Ñ 2°F×4NÑ4NÐQU×Q^ÑQ^Õ4^Ðek×etÑetÔuˆŒÜ—i’i × 2Ñ 2°F×4NÑ4NÐQU×Q^ÑQ^Õ4^Ðek×etÑetÔuˆŒÜ—i’i × 2Ñ 2°F×4NÑ4NÐQU×Q^ÑQ^Õ4^Ðek×etÑetÔuˆŒÜ—i’i × :Ñ :¸T¿]¹]Õ JÈF×L^ÑL^ÐeiÔjˆŽr%   c          
      ó¶   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[S[ P                  S[ P                  3,          /# ©r   Úhidden_statesr�   Nr�   r:   )r<   r=   r   r   Útuple)r    r!   s   "€r"   r#   rŸ   ¸   sX   ø€ ÷ )ñ )á—|‘|ð)ñ Ÿ™ tÕ+ð)ñ Ñ+Õ,ð	)ñ
 
‰u�|‰|™UŸ\™\Ð)Õ	*ñ)r%   c                ó¨  € VP                   R R p. VORNV P                  N5pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      p\        P                  ! V P                  P                  \        4      p	T	! V VVVV3RV P                  '       g   RMV P                  RV P                  /VB w  r«V
P                  ! . VORN5!  P!                  4       p
V P#                  V
4      p
W«3# )Nr]   ç        rŽ   rn   )r@   r¡   r«   ru   rC   r¬   r­   r   Úget_interfacer   Ú_attn_implementationr›   r”   r§   rŽ   ro   r˜   r®   )r4   r³   r�   r�   Úinput_shapeÚhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚattention_interfacerš   r™   s   &&&,        r"   rD   ÚPixioAttention.forward¸   sN  € ð $×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆà—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆØ—[‘[ Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆ
Ø—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—k‘k +Ó.ˆàÐ(Ð(r%   )
r§   r   r¡   r¨   r¬   r¤   r®   r«   rŽ   r­   ©N©	rF   rG   rH   rI   r+   rD   rK   rL   rM   rN   s   @@r"   r�   r�   ©   s    ù‡ € ÷kó k÷)÷ )ò )r%   r�   c                   óP   a a€ ] tR t^Út oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚPixioMLPc                ó   <€ V ^8„  d   QhRR/# )r   r:   N© )r    r!   s   "€r"   r#   ÚPixioMLP.__annotate__Û   s   ø€ ÷ 	Gñ 	G $ñ 	Gr%   c                óš  <€ \         SV `  4        VP                  ;r#\        VP                  VP                  ,          4      p\
        P                  ! W$R R7      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        MVP                  V n        \
        P                  ! WCR R7      V n        R# )Tr¢   N)r*   r+   r2   rc   Ú	mlp_ratior   r©   Úfc1r.   Ú
hidden_actÚstrr   Ú
activationÚfc2)r4   r   Úin_featuresÚout_featuresÚhidden_featuresr5   s   &&   €r"   r+   ÚPixioMLP.__init__Û   s�   ø€ Ü‰ÑÔØ%+×%7Ñ%7Ð7ˆÜ˜f×0Ñ0°6×3CÑ3CÕCÓDˆÜ—9’9˜[ÀÔEˆŒÜ�f×'Ñ'¬×-Ò-Ü$ V×%6Ñ%6Õ7ˆD�Oà$×/Ñ/ˆDŒOÜ—9’9˜_ÀÔFˆŽr%   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úhidden_stater:   r;   )r    r!   s   "€r"   r#   rÆ   æ   s#   ø€ ÷ ñ ¡E§L¡Lð ±U·\±\ñ r%   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rÀ   )rÉ   rÌ   rÍ   )r4   rÓ   s   &&r"   rD   ÚPixioMLP.forwardæ   s2   € Ø—x‘x Ó-ˆØ—‘ |Ó4ˆØ—x‘x Ó-ˆØÐr%   )rÌ   rÉ   rÍ   rÁ   rN   s   @@r"   rÃ   rÃ   Ú   s    ù‡ € ÷	Gó 	G÷÷ ð r%   rÃ   c                   ój   a a€ ] tR t^ít oRtR	V3R lV 3R llltV3R lR ltV3R lR ltRtVt	V ;t
# )
ÚPixioDropPathzÃStochastic depth (DropPath) per sample, for residual blocks.

Identity when ``drop_prob`` is 0 or outside training. See `Deep Networks with Stochastic Depth
<https://arxiv.org/abs/1603.09382>`_.
c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Ú	drop_probr:   N)r‘   )r    r!   s   "€r"   r#   ÚPixioDropPath.__annotate__ô   s   ø€ ÷ #ñ #¡%ð #°$ñ #r%   c                ó0   <€ \         SV `  4        Wn        R # rÀ   )r*   r+   rÙ   )r4   rÙ   r5   s   &&€r"   r+   ÚPixioDropPath.__init__ô   s   ø€ Ü‰ÑÔØ"Žr%   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r³   r:   r;   )r    r!   s   "€r"   r#   rÚ   ø   s#   ø€ ÷ <ñ <¡U§\¡\ð <±e·l±lñ <r%   c                ó˜  € V P                   R 8X  g   V P                  '       g   V# ^V P                   ,
          pVP                  ^ ,          3RVP                  ^,
          ,          ,           p\        P
                  ! W1P                  VP                  R7      p\        P                  ! WB,           4      pVP                  V4      V,          # )r¶   )rk   Údevice)r'   )
rÙ   r”   r@   Úndimr<   Úrandrk   rß   ÚfloorÚdiv)r4   r³   Ú	keep_probr@   Úrandom_tensors   &&   r"   rD   ÚPixioDropPath.forwardø   s•   € Ø�>‰>˜SÔ ¨¯¯¨Ø Ð Ø˜Ÿ™Õ&ˆ	Ø×$Ñ$ QÕ'Ð)¨D°M×4FÑ4FÈÕ4JÕ,KÕKˆÜŸ
š
 5×0CÑ0CÈM×L`ÑL`ÔaˆÜŸš MÕ$=Ó>ˆØ× Ñ  Ó+¨mÕ;Ð;r%   c                ó    <€ V ^8„  d   QhRS[ /# )r   r:   )rË   )r    r!   s   "€r"   r#   rÚ     s   ø€ ÷ %ñ %™Cñ %r%   c                ó    € R V P                    2# )zp=©rÙ   )r4   s   &r"   Ú
extra_reprÚPixioDropPath.extra_repr  s   € Ø�D—N‘NÐ#Ð$Ð$r%   ré   )r¶   )rF   rG   rH   rI   rJ   r+   rD   rê   rK   rL   rM   rN   s   @@r"   r×   r×   í   s-   ù‡ € ñ÷#õ #÷<ð <÷%÷ %ð %r%   r×   c                   óT   a a€ ] tR tR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# )Ú
PixioLayeri  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r    r!   s   "€r"   r#   ÚPixioLayer.__annotate__  s   ø€ ÷ pñ p™{ñ pr%   c                ó   <€ \         SV `  4        \        V4      V n        \        P
                  ! VP                  VP                  R 7      V n        \        P
                  ! VP                  VP                  R 7      V n	        \        V4      V n        \        P                  ! VP                  4      V n        VP                  R8”  d   \!        VP                  4      V n        R# \        P"                  ! 4       V n        R# )©Úepsr¶   N)r*   r+   r�   Ú	attentionr   Ú	LayerNormr2   Úlayer_norm_epsÚlayernorm_beforeÚlayernorm_afterrÃ   Úmlpr[   r\   r]   Údrop_path_rater×   ÚIdentityÚ	drop_pathr¯   s   &&€r"   r+   ÚPixioLayer.__init__  sª   ø€ Ü‰ÑÔÜ'¨Ó/ˆŒÜ "§¢¨V×-?Ñ-?ÀV×EZÑEZÔ [ˆÔÜ!Ÿ|š|¨F×,>Ñ,>ÀF×DYÑDYÔZˆÔÜ˜FÓ#ˆŒÜ—z’z &×"<Ñ"<Ó=ˆŒØ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²   )r<   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# rÀ   )rö   ró   r]   rû   r÷   rø   )r4   r³   r�   r�   Úresidualr…   s   &&&,  r"   rD   ÚPixioLayer.forward  sš   € ð !ˆØ×-Ñ-¨mÓ<ˆØŸ>š>¨-ÑRÈ6ÑRÑˆØŸ™ ]Ó3ˆØŸ™ }Ó5¸Õ@ˆà ˆØ×,Ñ,¨]Ó;ˆØŸ™ Ó/ˆØŸ™ ]Ó3ˆØŸ™ }Ó5¸Õ@ˆàÐr%   )ró   rû   r]   r÷   rö   rø   rÀ   rÁ   rN   s   @@r"   rí   rí     s    ù‡ € ÷pó p÷÷ ò r%   rí   c                   ó¢   a a€ ] tR tRt oRtRtRtRtRR.tRt	Rt
RtRtRtR]R]/tR	t]P&                  ! 4       V 3R
 l4       tV3R ltRtVtV ;t# )ÚPixioPreTrainedModeli$  Úpixior9   TrP   rí   r³   Ú
attentionsrY   c                ó®  <€ \         SV `  V4       \        V\        4      '       d¯   VP                  e8   \
        P                  ! VP                  RV P                  P                  R7       \
        P                  ! VP                  RV P                  P                  R7       VP                  e#   \
        P                  ! VP                  4       R# R# R# )zInitialize the weightsNr¶   )ÚmeanÚstd)r*   Ú_init_weightsr.   rP   rZ   ÚinitÚtrunc_normal_r   Úinitializer_rangerW   rX   Úzeros_)r4   r‰   r5   s   &&€r"   r  Ú"PixioPreTrainedModel._init_weights7  s—   ø€ ô 	‰Ñ˜fÔ%Ü�fœo×.Ò.Ø×)Ñ)Ò5Ü×"Ò" 6×#=Ñ#=ÀCÈTÏ[É[×MjÑMjÕkÜ×Ò˜v×/Ñ/°c¸t¿{¹{×?\Ñ?\Õ]Ø× Ñ Ò,Ü—’˜F×-Ñ-Ö.ñ -ñ	 /r%   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r   r   )r    r!   s   "€r"   r#   Ú!PixioPreTrainedModel.__annotate__$  s   ø‡ ‚ áÑò r%   rÅ   )Úimage)rF   rG   rH   rI   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_supports_sdpaÚ_supports_flash_attnÚ_supports_flex_attnÚ_supports_attention_backendÚ_can_compile_fullgraphrí   r�   Ú_can_record_outputsÚ_input_embed_layerr<   Úno_gradr  Ú__annotate_func__rK   rL   rM   rN   s   @@r"   r  r  $  s   ù‡ € ð  ÐØ$€OØ!ÐØ&*Ð#Ø*¨LÐ9ÐØ€NØÐØÐØ"&ÐØ!Ðà˜Ø�nðÐð ,Ðà
‡]‚]ƒ_ô/ó ð/÷) … r%   r  c                   ó€   a a€ ] tR tR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# )
Ú
PixioModeliC  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r    r!   s   "€r"   r#   ÚPixioModel.__annotate__E  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 )rñ   N)r*   r+   r   rP   r`   r   Ú
ModuleListÚrangeÚnum_hidden_layersrí   Úlayersrô   r2   rõ   Ú	layernormÚ	post_init©r4   r   r…   r5   s   && €r"   r+   ÚPixioModel.__init__E  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   r9   Nr�   r�   r:   )r<   r=   r   r   r   )r    r!   s   "€r"   r#   r"  S  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)r   Úinputs_embedsr�   re   rl   )Úlast_hidden_stateÚpooler_output)	rA   r`   r
   r   r'  r(  rV   r  r   )r4   r9   r�   r�   Úembedding_outputr³   ÚlayerÚpooled_outputs   &&&,    r"   rD   ÚPixioModel.forwardP  s±   € ð ÒÜÐ?Ó@Ð@àŸ?™?¨<Ó8ÐÜ2Ø—;‘;Ø*Ø)ô
ˆð
 )ˆØ—[”[ˆEÙ! -ÑJÀ6ÑJŠMñ !àŸ™ }Ó5ˆØ% aÐ)G¨4¯?©?×+GÑ+GÐ)GÈÐ&JÕK×PÑPÐUVÐPÓWˆä)Ø+Ø'ô
ð 	
r%   )r   r`   r(  r'  )NN)rF   rG   rH   rI   r+   r   r   r   rD   rK   rL   rM   rN   s   @@r"   r   r   C  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R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# )ÚPixioBackbonein  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r    r!   s   "€r"   r#   ÚPixioBackbone.__annotate__t  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 )r'   rñ   N)r*   r+   r%  r&  r2   Únum_featuresr   r  r   rô   rõ   r(  r)  r*  s   && €r"   r+   ÚPixioBackbone.__init__t  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   r9   r�   Nr�   r:   )r<   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_statesre   N)Úfeature_mapsr³   r  rn   )r  r³   ÚzipÚstage_namesrÏ   r   Úapply_layernormr(  Úreshape_hidden_statesr`   rV   r@   r-   ro   rp   r˜   Úappendr   r´   r  )r4   r9   r�   r�   Úoutputr³   rA  ÚstagerÓ   r„   r…   ra   rb   r-   s   &&&,          r"   rD   Ú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À   )rF   rG   rH   rI   r+   r   r	   r   rD   rK   rL   rM   rN   s   @@r"   r8  r8  n  s=   ù‡ € ÷ó ð Ø Ø÷6
ñ 6
ó ó !ó ÷6
ð 6
r%   r8  )Nr¶   )r   r  r8  )1Úcollections.abcr   r   r<   r   Ú r   r	  Úactivationsr   Úbackbone_utilsr   r	   Úmasking_utilsr
   Úmodeling_layersr   Úmodeling_outputsr   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   Úutils.genericr   r   Úutils.output_capturingr   Úconfiguration_pixior   r�   r   rP   r›   r�   rÃ   r×   rí   r  r   r8  Ú__all__rÅ   r%   r"   Ú<module>rX     s  ð÷* /ã Ý å &Ý !ß HÝ 6Ý 9ß [Ñ [ß FÝ &ß CÑ Cß IÝ 5Ý ,ôH˜2Ÿ9™9ô Hô<D�b—i‘iô D÷N%ô8.)�R—Y‘Yô .)ôbˆr�y‰yô ô&%�B—I‘Iô %ô0Ð+ô ð> ô/˜?ó /ó ð/ð< ô'
Ð%ó '
ó ð'
ñT ðôô
C
�MÐ#7ó C
óð
C
òL B‚r%   