+
    œ°³jìx  ã                   ó  € R t ^ RIt^ RIH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 ^RIHtHtHtHtHt ^R	IHt ^R
IHt ]! 4       '       d
   ^ RIHtHt MR tR t]! RR7      ] ! R R]4      4       4       t]! RR7      ] ! R R]4      4       4       t]! RR7      ] ! R R]4      4       4       t ! R R]P>                  4      t  ! R R]P>                  4      t! ! R R]P>                  4      t" ! R R]P>                  4      t# ! R  R!]P>                  4      t$ ! R" R#]P>                  4      t% ! R$ R%]P>                  4      t& ! R& R']P>                  4      t' ! R( R)]P>                  4      t( ! R* R+]P>                  4      t) ! R, R-]P>                  4      t* ! R. R/]P>                  4      t+] ! R0 R1]4      4       t,] ! R2 R3],4      4       t-]! R4R7       ! R5 R6],4      4       t.]! R7R7       ! R8 R9]	],4      4       t/. R:Ot0R# );z9PyTorch Dilated Neighborhood Attention Transformer model.N)Ú	dataclass)Únn)ÚACT2FN)ÚBackboneMixinÚfilter_output_hidden_states)ÚBackboneOutput)ÚPreTrainedModel)ÚModelOutputÚOptionalDependencyNotAvailableÚauto_docstringÚis_natten_availableÚrequires_backends)Úcan_return_tuple©ÚDinatConfig)Ú
natten2davÚnatten2dqkrpbc                  ó   € \        4       h©N©r
   ©ÚargsÚkwargss   *,Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/dinat/modeling_dinat.pyr   r   )   ó   € Ü,Ó.Ð.ó    c                  ó   € \        4       hr   r   r   s   *,r   r   r   ,   r   r   zO
    Dinat encoder's outputs, with potential hidden states and attentions.
    )Úcustom_introc                   ó@   a € ] tR t^0t o RtRtRtRtRtV 3R lt	Rt
V tR# )ÚDinatEncoderOutputaÕ  
reshaped_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
    Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of
    shape `(batch_size, hidden_size, height, width)`.

    Hidden-states of the model at the output of each layer plus the initial embedding outputs reshaped to
    include the spatial dimensions.
Nc                ó  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   # )é   NÚlast_hidden_state.Úhidden_statesÚ
attentionsÚreshaped_hidden_states©ÚtorchÚFloatTensorÚtuple)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚDinatEncoderOutput.__annotate__0   sƒ   ø‡ ‚ ñ  ×(Ñ(¨4Õ/Ñ6ñ! ñ" ™×*Ñ*¨CÐ/Õ0°4Õ7Ñ>ñ# ñ$ ‘e×'Ñ'¨Ð,Õ-°Õ4Ñ;ñ% ñ& "¡%×"3Ñ"3°SÐ"8Õ9¸DÕ@ÑGò' r   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r"   r#   r$   r%   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r+   s   @r   r   r   0   s)   ø‡ € ñð 37ÐØ:>€MØ7;€JØCGÐ÷' ƒ r   r   zW
    Dinat model's outputs that also contains a pooling of the last hidden states.
    c                   óD   a € ] tR t^Ft o RtRtRtRtRtRt	V 3R lt
RtV tR# )ÚDinatModelOutputa‘  
pooler_output (`torch.FloatTensor` of shape `(batch_size, hidden_size)`, *optional*, returned when `add_pooling_layer=True` is passed):
    Average pooling of the last layer hidden-state.
reshaped_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
    Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of
    shape `(batch_size, hidden_size, height, width)`.

    Hidden-states of the model at the output of each layer plus the initial embedding outputs reshaped to
    include the spatial dimensions.
Nc                ó<  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   # )r!   Nr"   Úpooler_output.r#   r$   r%   r&   )r*   r+   s   "€r   r,   ÚDinatModelOutput.__annotate__F   s›   ø‡ ‚ ñ$ ×(Ñ(¨4Õ/Ñ6ñ% ñ& ×$Ñ$ tÕ+Ñ2ñ' ñ( ™×*Ñ*¨CÐ/Õ0°4Õ7Ñ>ñ) ñ* ‘e×'Ñ'¨Ð,Õ-°Õ4Ñ;ñ+ ñ, "¡%×"3Ñ"3°SÐ"8Õ9¸DÕ@ÑGò- r   r.   )r/   r0   r1   r2   r3   r"   r;   r#   r$   r%   r4   r5   r6   r7   s   @r   r9   r9   F   s.   ø‡ € ñ	ð 37ÐØ.2€MØ:>€MØ7;€JØCGÐ÷- ƒ r   r9   z1
    Dinat outputs for image classification.
    c                   óD   a € ] tR t^_t o RtRtRtRtRtRt	V 3R lt
RtV tR# )ÚDinatImageClassifierOutputa  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Classification (or regression if config.num_labels==1) loss.
logits (`torch.FloatTensor` of shape `(batch_size, config.num_labels)`):
    Classification (or regression if config.num_labels==1) scores (before SoftMax).
reshaped_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
    Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of
    shape `(batch_size, hidden_size, height, width)`.

    Hidden-states of the model at the output of each layer plus the initial embedding outputs reshaped to
    include the spatial dimensions.
Nc                ó<  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   # )r!   NÚlossÚlogits.r#   r$   r%   r&   )r*   r+   s   "€r   r,   Ú'DinatImageClassifierOutput.__annotate___   s›   ø‡ ‚ ñ( ×
Ñ
˜dÕ
"Ñ)ñ) ñ* ×Ñ Õ$Ñ+ñ+ ñ, ™×*Ñ*¨CÐ/Õ0°4Õ7Ñ>ñ- ñ. ‘e×'Ñ'¨Ð,Õ-°Õ4Ñ;ñ/ ñ0 "¡%×"3Ñ"3°SÐ"8Õ9¸DÕ@ÑGò1 r   r.   )r/   r0   r1   r2   r3   r@   rA   r#   r$   r%   r4   r5   r6   r7   s   @r   r>   r>   _   s-   ø‡ € ñð &*€DØ'+€FØ:>€MØ7;€JØCGÐ÷1 ƒ r   r>   c                   óH   a a€ ] tR t^zt oRtV 3R ltV3R lR ltRtVtV ;t	# )ÚDinatEmbeddingsz.
Construct the patch and position embeddings.
c                óØ   <€ \         SV `  4        \        V4      V n        \        P
                  ! VP                  4      V n        \        P                  ! VP                  4      V n
        R # r   )ÚsuperÚ__init__ÚDinatPatchEmbeddingsÚpatch_embeddingsr   Ú	LayerNormÚ	embed_dimÚnormÚDropoutÚhidden_dropout_probÚdropout©ÚselfÚconfigÚ	__class__s   &&€r   rG   ÚDinatEmbeddings.__init__   sG   ø€ Ü‰ÑÔä 4°VÓ <ˆÔä—L’L ×!1Ñ!1Ó2ˆŒ	Ü—z’z &×"<Ñ"<Ó=ˆŽr   c                ól   <€ V ^8„  d   QhRS[ P                  R,          RS[S[ P                  ,          /# ©r!   Úpixel_valuesNÚreturn)r'   r(   r)   ÚTensor)r*   r+   s   "€r   r,   ÚDinatEmbeddings.__annotate__‡   s/   ø€ ÷ ñ ¡E×$5Ñ$5¸Õ$<ð ÁÁuÇ|Á|ÕATñ r   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r   )rI   rL   rO   )rQ   rW   Ú
embeddingss   && r   ÚforwardÚDinatEmbeddings.forward‡   s4   € Ø×*Ñ*¨<Ó8ˆ
Ø—Y‘Y˜zÓ*ˆ
à—\‘\ *Ó-ˆ
àÐr   )rO   rL   rI   ©
r/   r0   r1   r2   r3   rG   r]   r5   r6   Ú__classcell__©rS   r+   s   @@r   rD   rD   z   s   ù‡ € ñõ>÷÷ ð r   rD   c                   óH   a a€ ] tR t^�t oRtV 3R ltV3R lR ltRtVtV ;t	# )rH   zß
This class turns `pixel_values` of shape `(batch_size, num_channels, height, width)` into the initial
`hidden_states` (patch embeddings) of shape `(batch_size, height, width, hidden_size)` to be consumed by a
Transformer.
c                óh  <€ \         SV `  4        VP                  pVP                  VP                  rCW0n        V^8X  d   M\        R4      h\        P                  ! \        P                  ! V P                  V^,          RRRR7      \        P                  ! V^,          VRRRR7      4      V n	        R# )é   z2Dinat only supports patch size of 4 at the moment.)Úkernel_sizeÚstrideÚpaddingN©é   ri   ©r!   r!   ©é   rl   )
rF   rG   Ú
patch_sizeÚnum_channelsrK   Ú
ValueErrorr   Ú
SequentialÚConv2dÚ
projection)rQ   rR   rm   rn   Úhidden_sizerS   s   &&   €r   rG   ÚDinatPatchEmbeddings.__init__—   s–   ø€ Ü‰ÑÔØ×&Ñ&ˆ
Ø$*×$7Ñ$7¸×9IÑ9I�kØ(Ôà˜Œ?Øô ÐQÓRÐRäŸ-š-Ü�IŠI�d×'Ñ'¨¸Õ)9ÀvÐV\ÐflÔmÜ�IŠI�k QÕ&¨ÀÐPVÐ`fÔgó
ˆŽr   c                ó\   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  /# rV   )r'   r(   rY   )r*   r+   s   "€r   r,   Ú!DinatPatchEmbeddings.__annotate__¨   s*   ø€ ÷ 	ñ 	¡E×$5Ñ$5¸Õ$<ð 	ÁÇÁñ 	r   c                ó¤   € VP                   w  r#rEW0P                  8w  d   \        R 4      hV P                  V4      pVP	                  ^ ^^^4      pV# )zeMake sure that the channel dimension of the pixel values match with the one set in the configuration.)Úshapern   ro   rr   Úpermute)rQ   rW   Ú_rn   ÚheightÚwidthr\   s   &&     r   r]   ÚDinatPatchEmbeddings.forward¨   sZ   € Ø)5×);Ñ);Ñ&ˆ˜Ø×,Ñ,Ô,ÜØwóð ð —_‘_ \Ó2ˆ
Ø×'Ñ'¨¨1¨a°Ó3ˆ
àÐr   )rn   rr   r_   ra   s   @@r   rH   rH   �   s   ù‡ € ñõ
÷"	÷ 	ð 	r   rH   c                   ón   a a€ ] tR t^´t oRt]P                  3V3R lV 3R llltV3R lR ltRt	Vt
V ;t# )ÚDinatDownsamplerzÆ
Convolutional Downsampling Layer.

Args:
    dim (`int`):
        Number of input channels.
    norm_layer (`nn.Module`, *optional*, defaults to `nn.LayerNorm`):
        Normalization layer class.
c                ó>   <€ V ^8„  d   QhRS[ RS[P                  RR/# )r!   ÚdimÚ
norm_layerrX   N)Úintr   ÚModule)r*   r+   s   "€r   r,   ÚDinatDownsampler.__annotate__¿   s&   ø€ ÷ (ñ (™Cð (©R¯Y©Yð (È$ñ (r   c           	     ó¨   <€ \         SV `  4        Wn        \        P                  ! V^V,          RRRRR7      V n        V! ^V,          4      V n        R# )r!   F)re   rf   rg   ÚbiasNrh   rj   rk   )rF   rG   r�   r   rq   Ú	reductionrL   )rQ   r�   r‚   rS   s   &&&€r   rG   ÚDinatDownsampler.__init__¿   sC   ø€ Ü‰ÑÔØŒÜŸš 3¨¨C­¸VÈFÐ\bÐinÔoˆŒÙ˜q 3�wÓ'ˆŽ	r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r!   Úinput_featurerX   ©r'   rY   )r*   r+   s   "€r   r,   r…   Å   ó#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r   c                ó’   € V P                  VP                  ^ ^^^4      4      P                  ^ ^^^4      pV P                  V4      pV# )é    )rˆ   ry   rL   )rQ   r‹   s   &&r   r]   ÚDinatDownsampler.forwardÅ   sJ   € ØŸ™ }×'<Ñ'<¸QÀÀ1ÀaÓ'HÓI×QÑQÐRSÐUVÐXYÐ[\Ó]ˆØŸ	™	 -Ó0ˆØÐr   )r�   rL   rˆ   )r/   r0   r1   r2   r3   r   rJ   rG   r]   r5   r6   r`   ra   s   @@r   r   r   ´   s,   ù‡ € ñð :<¿¹÷ (õ (÷÷ ð r   r   c                   óH   a a€ ] tR t^Ët oV 3R ltRV3R lR lltRtVtV ;t# )ÚNeighborhoodAttentionc                ój  <€ \         SV `  4        W#,          ^ 8w  d   \        RV RV R24      hW0n        \	        W#,          4      V n        V P                  V P
                  ,          V n        W@n        WPn        \        P                  ! \        P                  ! V^V P                  ,          ^,
          ^V P                  ,          ^,
          4      4      V n        \        P                  ! V P                  V P                  VP                  R7      V n        \        P                  ! V P                  V P                  VP                  R7      V n        \        P                  ! V P                  V P                  VP                  R7      V n        \        P&                  ! VP(                  4      V n        R# )r�   zThe hidden size (z6) is not a multiple of the number of attention heads (Ú))r‡   N)rF   rG   ro   Únum_attention_headsrƒ   Úattention_head_sizeÚall_head_sizere   Údilationr   Ú	Parameterr'   ÚzerosÚrpbÚLinearÚqkv_biasÚqueryÚkeyÚvaluerM   Úattention_probs_dropout_probrO   ©rQ   rR   r�   Ú	num_headsre   r˜   rS   s   &&&&&&€r   rG   ÚNeighborhoodAttention.__init__Ì   s:  ø€ Ü‰ÑÔØ�?˜aÔÜØ# C 5Ð(^Ð_hÐ^iÐijÐkóð ð $-Ô Ü#& s¥Ó#7ˆÔ Ø!×5Ñ5¸×8PÑ8PÕPˆÔØ&ÔØ Œô —<’<¤§¢¨I¸¸D×<LÑ<LÕ8LÈqÕ8PÐTUÐX\×XhÑXhÕThÐklÕTlÓ nÓoˆŒä—Y’Y˜t×1Ñ1°4×3EÑ3EÈFÏOÉOÔ\ˆŒ
Ü—9’9˜T×/Ñ/°×1CÑ1CÈ&Ï/É/ÔZˆŒÜ—Y’Y˜t×1Ñ1°4×3EÑ3EÈFÏOÉOÔ\ˆŒ
ä—z’z &×"EÑ"EÓFˆŽr   c                ór   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[S[ P                  ,          /# ©r!   r#   Úoutput_attentionsNrX   ©r'   rY   Úboolr)   )r*   r+   s   "€r   r,   Ú"NeighborhoodAttention.__annotate__â   s:   ø€ ÷ !ñ !á—|‘|ð!ñ   $�;ð!ñ 
‰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V\        P                  ! V P                  4      ,          p\        WVV P                  V P                  V P                  4      p\        P                  P                  VRR7      p	V P!                  V	4      p	\#        W—V P                  V P                  4      p
V
P%                  ^ ^^^^4      P'                  4       p
V
P)                  4       R R V P*                  3,           pV
P                  V4      p
V'       d   W©3pV# V
3pV# )N)r�   éÿÿÿÿéþÿÿÿ)rx   r–   rž   ÚviewÚ	transposerŸ   r    ÚmathÚsqrtr   r›   re   r˜   r   Ú
functionalÚsoftmaxrO   r   ry   Ú
contiguousÚsizer—   )rQ   r#   r§   Úinput_shapeÚhidden_shapeÚquery_layerÚ	key_layerÚvalue_layerÚattention_scoresÚattention_probsÚcontext_layerÚnew_context_layer_shapeÚoutputss   &&&          r   r]   ÚNeighborhoodAttention.forwardâ   s   € ð
 $×)Ñ)¨#¨2Ð.ˆØC˜ÐC bÐC¨$×*BÑ*BÑCˆØ—j‘j Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆØ—H‘H˜]Ó+×0Ñ0°Ó>×HÑHÈÈAÓNˆ	Ø—j‘j Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆð
 "¤D§I¢I¨d×.FÑ.FÓ$GÕGˆô )¨ÀÇÁÈ4×K[ÑK[Ð]a×]jÑ]jÓkÐô Ÿ-™-×/Ñ/Ð0@ÀbÐ/ÓIˆð Ÿ,™, Ó7ˆä" ?À×AQÑAQÐSW×S`ÑS`ÓaˆØ%×-Ñ-¨a°°A°q¸!Ó<×GÑGÓIˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸t×?QÑ?QÐ>SÕ"SÐØ%×*Ñ*Ð+BÓCˆç6G�=Ð2ˆàˆð O\ÐM]ˆàˆr   )
r—   r–   r˜   rO   re   rŸ   r•   rž   r›   r    ©F©	r/   r0   r1   r2   rG   r]   r5   r6   r`   ra   s   @@r   r’   r’   Ë   s   ù‡ € õG÷,!÷ !ò !r   r’   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚNeighborhoodAttentionOutputi  c                ó¤   <€ \         SV `  4        \        P                  ! W"4      V n        \        P
                  ! VP                  4      V n        R # r   )rF   rG   r   rœ   ÚdenserM   r¡   rO   ©rQ   rR   r�   rS   s   &&&€r   rG   Ú$NeighborhoodAttentionOutput.__init__  s4   ø€ Ü‰ÑÔÜ—Y’Y˜sÓ(ˆŒ
Ü—z’z &×"EÑ"EÓFˆŽr   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r!   r#   Úinput_tensorrX   rŒ   )r*   r+   s   "€r   r,   Ú(NeighborhoodAttentionOutput.__annotate__  s1   ø€ ÷ ñ ¡U§\¡\ð ÁÇÁð ÑRW×R^ÑR^ñ r   c                óJ   € V P                  V4      pV P                  V4      pV# r   ©rÆ   rO   )rQ   r#   rÊ   s   &&&r   r]   Ú#NeighborhoodAttentionOutput.forward  s$   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆàÐr   rÍ   rÂ   ra   s   @@r   rÄ   rÄ     s   ù‡ € õG÷
÷ ð r   rÄ   c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚNeighborhoodAttentionModulei  c                óh   <€ \         SV `  4        \        WW4V4      V n        \	        W4      V n        R # r   )rF   rG   r’   rQ   rÄ   Úoutputr¢   s   &&&&&&€r   rG   Ú$NeighborhoodAttentionModule.__init__  s*   ø€ Ü‰ÑÔÜ)¨&°yÈxÓXˆŒ	Ü1°&Ó>ˆŽr   c                ór   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[S[ P                  ,          /# r¦   r¨   )r*   r+   s   "€r   r,   Ú(NeighborhoodAttentionModule.__annotate__  s:   ø€ ÷ ñ á—|‘|ðñ   $�;ðñ 
‰u�|‰|Õ	ñ	r   c                ó|   € V P                  W4      pV P                  V^ ,          V4      pV3VR,          ,           pV# ©r�   ºrl   NN)rQ   rÒ   )rQ   r#   r§   Úself_outputsÚattention_outputr¿   s   &&&   r   r]   Ú#NeighborhoodAttentionModule.forward  s>   € ð
 —y‘y ÓBˆØŸ;™; |°A¥¸ÓFÐØ#Ð%¨°RÕ(8Õ8ˆØˆr   )rÒ   rQ   rÁ   rÂ   ra   s   @@r   rÐ   rÐ     s   ù‡ € õ?÷
÷ ò r   rÐ   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚDinatIntermediatei$  c                ó.  <€ \         SV `  4        \        P                  ! V\	        VP
                  V,          4      4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        R # VP                  V n        R # r   )rF   rG   r   rœ   rƒ   Ú	mlp_ratiorÆ   Ú
isinstanceÚ
hidden_actÚstrr   Úintermediate_act_fnrÇ   s   &&&€r   rG   ÚDinatIntermediate.__init__%  sd   ø€ Ü‰ÑÔÜ—Y’Y˜s¤C¨×(8Ñ(8¸3Õ(>Ó$?Ó@ˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r!   r#   rX   rŒ   )r*   r+   s   "€r   r,   ÚDinatIntermediate.__annotate__-  r�   r   c                óJ   € V P                  V4      pV P                  V4      pV# r   ©rÆ   rã   ©rQ   r#   s   &&r   r]   ÚDinatIntermediate.forward-  s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐr   ré   rÂ   ra   s   @@r   rÝ   rÝ   $  s   ù‡ € õ9÷÷ ð r   rÝ   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚDinatOutputi3  c                óÚ   <€ \         SV `  4        \        P                  ! \	        VP
                  V,          4      V4      V n        \        P                  ! VP                  4      V n	        R # r   )
rF   rG   r   rœ   rƒ   rß   rÆ   rM   rN   rO   rÇ   s   &&&€r   rG   ÚDinatOutput.__init__4  sF   ø€ Ü‰ÑÔÜ—Y’Yœs 6×#3Ñ#3°cÕ#9Ó:¸CÓ@ˆŒ
Ü—z’z &×"<Ñ"<Ó=ˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ræ   rŒ   )r*   r+   s   "€r   r,   ÚDinatOutput.__annotate__9  r�   r   c                óJ   € V P                  V4      pV P                  V4      pV# r   rÍ   rê   s   &&r   r]   ÚDinatOutput.forward9  s$   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØÐr   rÍ   rÂ   ra   s   @@r   rí   rí   3  s   ù‡ € õ>÷
÷ ð r   rí   c                   ój   a a€ ] tR tR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
# )ÚDinatDropPathi@  zÃ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_probrX   N)Úfloat)r*   r+   s   "€r   r,   ÚDinatDropPath.__annotate__G  s   ø€ ÷ #ñ #¡%ð #°$ñ #r   c                ó0   <€ \         SV `  4        Wn        R # r   )rF   rG   r÷   )rQ   r÷   rS   s   &&€r   rG   ÚDinatDropPath.__init__G  s   ø€ Ü‰ÑÔØ"Žr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ræ   rŒ   )r*   r+   s   "€r   r,   rù   K  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,          # )ç        )ÚdtypeÚdevice)rl   )
r÷   Útrainingrx   Úndimr'   Úrandrÿ   r   ÚfloorÚdiv)rQ   r#   Ú	keep_probrx   Úrandom_tensors   &&   r   r]   ÚDinatDropPath.forwardK  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!   rX   )râ   )r*   r+   s   "€r   r,   rù   T  s   ø€ ÷ %ñ %™Cñ %r   c                ó    € R V P                    2# )zp=©r÷   ©rQ   s   &r   Ú
extra_reprÚDinatDropPath.extra_reprT  s   € Ø�D—N‘NÐ#Ð$Ð$r   r  ©rþ   )r/   r0   r1   r2   r3   rG   r]   r  r5   r6   r`   ra   s   @@r   rõ   rõ   @  s-   ù‡ € ñ÷#õ #÷<ð <÷%÷ %ð %r   rõ   c                   óR   a a€ ] tR tRt oRV 3R lltR tRV3R lR lltRtVtV ;t	# )	Ú
DinatLayeriX  c                óò  <€ \         SV `  4        VP                  V n        VP                  V n        W@n        V P                  V P                  ,          V n        \        P                  ! W!P                  R 7      V n	        \        WW0P                  V P                  R7      V n        VR8”  d   \        V4      M\        P                  ! 4       V n        \        P                  ! W!P                  R 7      V n        \!        W4      V n        \%        W4      V n        VP(                  ^ 8”  dG   \        P*                  ! VP(                  \,        P.                  ! ^V34      ,          RR7      V n        R# RV n        R# )©Úeps)re   r˜   rþ   T)Úrequires_gradN)rF   rG   Úchunk_size_feed_forwardre   r˜   Úwindow_sizer   rJ   Úlayer_norm_epsÚlayernorm_beforerÐ   Ú	attentionrõ   ÚIdentityÚ	drop_pathÚlayernorm_afterrÝ   Úintermediaterí   rÒ   Úlayer_scale_init_valuer™   r'   ÚonesÚlayer_scale_parameters)rQ   rR   r�   r£   r˜   Údrop_path_raterS   s   &&&&&&€r   rG   ÚDinatLayer.__init__Y  s  ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$Ø!×-Ñ-ˆÔØ ŒØ×+Ñ+¨d¯m©mÕ;ˆÔÜ "§¢¨S×6KÑ6KÔ LˆÔÜ4Ø˜×0@Ñ0@È4Ï=É=ô
ˆŒð ;IÈ3Ô:Nœ ~Ô6ÔTV×T_ÒT_ÓTaˆŒÜ!Ÿ|š|¨C×5JÑ5JÔKˆÔÜ-¨fÓ:ˆÔÜ! &Ó.ˆŒð ×,Ñ,¨qÔ0ô �LŠL˜×6Ñ6¼¿ºÀQÈÀHÓ9MÕMÐ]aÔbð 	Ö#ð ð 	Ö#r   c                óÔ   € V P                   pRpW$8  g   W48  dM   ^ ;rg\        ^ WC,
          4      p\        ^ WB,
          4      p	^ ^ WhWy3p\        P                  P	                  W4      pW3# )r�   )r�   r�   r�   r�   r�   r�   )r  Úmaxr   r²   Úpad)
rQ   r#   r{   r|   r  Ú
pad_valuesÚpad_lÚpad_tÚpad_rÚpad_bs
   &&&&      r   Ú	maybe_padÚDinatLayer.maybe_padm  sn   € Ø×&Ñ&ˆØ'ˆ
ØÔ 5Ô#6ØÐˆEÜ˜˜;Õ.Ó/ˆEÜ˜˜;Õ/Ó0ˆEØ˜Q ¨eÐ;ˆJÜŸM™M×-Ñ-¨mÓHˆMØÐ(Ð(r   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[S[ P                  S[ P                  3,          /# r¦   r¨   )r*   r+   s   "€r   r,   ÚDinatLayer.__annotate__x  sC   ø€ ÷ $ñ $á—|‘|ð$ñ   $�;ð$ñ 
‰u�|‰|™UŸ\™\Ð)Õ	*ñ	$r   c                óè  € VP                  4       w  r4rVTpV P                  V4      pV P                  WV4      w  rVP                  w  ršr¹V P	                  WR 7      pV^ ,          pV^,          ^ 8„  ;'       g    V^,          ^ 8„  pV'       d    VRRV1RV1R3,          P                  4       pV P                  e   V P                  ^ ,          V,          pWpP                  V4      ,           pV P                  V4      pV P                  V P                  V4      4      pV P                  e   V P                  ^,          V,          pWP                  V4      ,           pV'       d   Wü^,          3pV# V3pV# ))r§   :NNNN)rµ   r  r,  rx   r  r´   r!  r  r  rÒ   r  )rQ   r#   r§   Ú
batch_sizer{   r|   ÚchannelsÚshortcutr'  rz   Ú
height_padÚ	width_padÚattention_outputsrÚ   Ú
was_paddedÚlayer_outputÚlayer_outputss   &&&              r   r]   ÚDinatLayer.forwardx  si  € ð
 /<×.@Ñ.@Ó.BÑ+ˆ
˜EØ ˆà×-Ñ-¨mÓ<ˆà$(§N¡N°=È%Ó$PÑ!ˆà&3×&9Ñ&9Ñ#ˆ�yà ŸN™N¨=˜NÓ^Ðà,¨QÕ/Ðà •] QÑ&×;Ð;¨*°Q­-¸!Ñ*;ˆ
ßØ/°°7°F°7¸F¸U¸FÀAÐ0EÕF×QÑQÓSÐà×&Ñ&Ò2Ø#×:Ñ:¸1Õ=Ð@PÕPÐà §>¡>Ð2BÓ#CÕCˆà×+Ñ+¨MÓ:ˆØ—{‘{ 4×#4Ñ#4°\Ó#BÓCˆà×&Ñ&Ò2Ø×6Ñ6°qÕ9¸LÕHˆLà$§~¡~°lÓ'CÕCˆç@Q˜¸Õ';Ð<ˆØÐð YeÐWfˆØÐr   )r  r  r˜   r  r  re   r!  r  r  rÒ   r  r  rÁ   )
r/   r0   r1   r2   rG   r,  r]   r5   r6   r`   ra   s   @@r   r  r  X  s   ù‡ € ÷
ò(	)÷$÷ $ò $r   r  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )Ú
DinatStageiŸ  c                óB  <€ \         S	V `  4        Wn        W n        \        P
                  ! \        V4       Uu. uF  p\        VVVWX,          Wh,          R 7      NK!  	  up4      V n        Ve   V! V\        P                  R7      V n
        MRV n
        RV n        R# u upi ))rR   r�   r£   r˜   r"  N)r�   r‚   F)rF   rG   rR   r�   r   Ú
ModuleListÚranger  ÚlayersrJ   Ú
downsampleÚpointing)
rQ   rR   r�   Údepthr£   Ú	dilationsr"  rA  ÚirS   s
   &&&&&&&& €r   rG   ÚDinatStage.__init__   s“   ø€ Ü‰ÑÔØŒØŒÜ—m’mô ˜uœó	ñ &�Aô Ø!ØØ'Ø&�\Ø#1Õ#4÷ñ &ñ	ó
ˆŒð Ò!Ù(¨S¼R¿\¹\ÔJˆD�Oà"ˆDŒOàˆŽùò%	s   ¹%Bc                ór   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[S[ P                  ,          /# r¦   r¨   )r*   r+   s   "€r   r,   ÚDinatStage.__annotate__¹  s:   ø€ ÷ ñ á—|‘|ðñ   $�;ðñ 
‰u�|‰|Õ	ñ	r   c                ó  € VP                  4       w  r4rS\        V P                  4       F  w  rgV! W4      pV^ ,          pK  	  Tp	V P                  e   V P                  V	4      pW3p
V'       d   V
XR,          ,          p
V
# r×   )rµ   Ú	enumerater@  rA  )rQ   r#   r§   rz   r{   r|   rE  Úlayer_moduler9  Ú!hidden_states_before_downsamplingÚstage_outputss   &&&        r   r]   ÚDinatStage.forward¹  s�   € ð
 ,×0Ñ0Ó2Ñˆ�5Ü(¨¯©Ö5‰OˆAÙ(¨ÓJˆMØ)¨!Õ,ŠMñ  6ð -:Ð)Ø�?‰?Ò&Ø ŸO™OÐ,MÓNˆMà&ÐJˆçØ˜]¨2Õ.Õ.ˆMØÐr   )rR   r�   rA  r@  rB  rÁ   rÂ   ra   s   @@r   r<  r<  Ÿ  s   ù‡ € õ÷2÷ ò r   r<  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚDinatEncoderiÎ  c                ó  <€ \         SV `  4        \        VP                  4      V n        Wn        \        P                  ! ^ VP                  \        VP                  4      RR7       Uu. uF  q"P                  4       NK  	  pp\        P                  ! \        V P                  4       Uu. uF¼  p\        T\        VP                   ^V,          ,          4      VP                  V,          VP"                  V,          VP$                  V,          V\        VP                  RV 4      \        VP                  RV^,            4       W@P                  ^,
          8  d   \&        MRR7      NK¾  	  up4      V n        R# u upi u upi )r�   Úcpu)r   N)rR   r�   rC  r£   rD  r"  rA  )rF   rG   ÚlenÚdepthsÚ
num_levelsrR   r'   Úlinspacer"  ÚsumÚitemr   r>  r?  r<  rƒ   rK   r£   rD  r   Úlevels)rQ   rR   ÚxÚdprÚi_layerrS   s   &&   €r   rG   ÚDinatEncoder.__init__Ï  s0  ø€ Ü‰ÑÔÜ˜fŸm™mÓ,ˆŒØŒÜ!&§¢°°6×3HÑ3HÌ#ÈfÏmÉmÓJ\ÐejÕ!kÓlÑ!k˜A�v‰vŽxÑ!kˆÐlÜ—m’mô  % T§_¡_Ô5óñ  6�Gô Ø!Ü˜F×,Ñ,¨q°'­zÕ9Ó:Ø Ÿ-™-¨Õ0Ø$×.Ñ.¨wÕ7Ø$×.Ñ.¨wÕ7Ø#&¤s¨6¯=©=¸¸'Ð+BÓ'CÄcÈ&Ï-É-ÐXeÐZaÐdeÕZeÐJfÓFgÐ#hØ4;¿o¹oÐPQÕ>QÔ4QÕ/ÐX\÷ñ  6ñó
ˆŽùò mùòs   Á)E:Â*CE?c                óš   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# )r!   r#   r§   NÚoutput_hidden_statesÚ(output_hidden_states_before_downsamplingÚreturn_dictrX   )r'   rY   r©   r)   r   )r*   r+   s   "€r   r,   ÚDinatEncoder.__annotate__ã  sa   ø€ ÷ .
ñ .
á—|‘|ð.
ñ   $�;ð.
ñ # T�kð	.
ñ
 37¸µ+ð.
ñ ˜D•[ð.
ñ 
Ñ#Õ	#ñ.
r   c                ó°  € V'       d   RMR pV'       d   RMR pV'       d   RMR pV'       d'   VP                  ^ ^^^4      p	Wa3,          pWy3,          p\        V P                  4       F¥  w  r«V! W4      pV^ ,          pV^,          pV'       d0   V'       d(   VP                  ^ ^^^4      p	Wm3,          pWy3,          pM6V'       d/   V'       g'   VP                  ^ ^^^4      p	Wa3,          pWy3,          pV'       g   K–  WŒR,          ,          pK§  	  V'       g1   \        ;QJ d    . R WV3 4       F  NK  	  5# ! R WV3 4       4      # \	        VVVVR7      # )Nºr!   NNc              3   ó0   "  € T F  qf   K  Vx € K  	  R # 5ir   r.   )Ú.0Úvs   & r   Ú	<genexpr>Ú'DinatEncoder.forward.<locals>.<genexpr>
  s   é € ÐmÑ$[˜qŸšÓ$[ùs   ‚Œ
)r"   r#   r$   r%   r.   )ry   rJ  rY  r)   r   )rQ   r#   r§   r_  r`  ra  Úall_hidden_statesÚall_reshaped_hidden_statesÚall_self_attentionsÚreshaped_hidden_staterE  rK  r9  rL  s   &&&&&&        r   r]   ÚDinatEncoder.forwardã  sV  € ÷ #7™B¸DÐß+?¡RÀTÐ"ß$5™b¸4Ðçà$1×$9Ñ$9¸!¸QÀÀ1Ó$EÐ!ØÐ!1Õ1ÐØ&Ð*BÕBÐ&ä(¨¯©Ö5‰OˆAÙ(¨ÓJˆMà)¨!Õ,ˆMØ0=¸aÕ0@Ð-ç#×(Pà(I×(QÑ(QÐRSÐUVÐXYÐ[\Ó(]Ð%Ø!Ð%IÕIÐ!Ø*Ð.FÕFÑ*ß%×.Và(5×(=Ñ(=¸aÀÀAÀqÓ(IÐ%Ø!Ð%5Õ5Ð!Ø*Ð.FÕFÐ*ç Ñ Ø#°RÕ'8Õ8Ò#ñ%  6÷( ß”5Ñm ]ÐGZÑ$[Óm—5Ðm�5Ñm ]ÐGZÑ$[ÓmÓmÐmä!Ø+Ø+Ø*Ø#=ô	
ð 	
r   )rR   rY  rU  )FFFTrÂ   ra   s   @@r   rP  rP  Î  s   ù‡ € õ
÷(.
÷ .
ò .
r   rP  c                   ó8   a € ] tR tRt o RtRtRtV 3R ltRtV t	R# )ÚDinatPreTrainedModeli  ÚdinatrW   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r!   rR   r   )r*   r+   s   "€r   r,   Ú!DinatPreTrainedModel.__annotate__  s   ø‡ ‚ áÑò r   r.   N)Úimage)
r/   r0   r1   r2   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesr4   r5   r6   r7   s   @r   rp  rp    s   ø‡ € ð  ÐØ$€OØ!Ð÷ ƒ r   rp  c                   ó\   a a€ ] tR tRt oRV 3R lltR t]RV3R lR ll4       tRtVt	V ;t
# )	Ú
DinatModeli  c                óþ  <€ \         SV `  V4       \        V R.4       Wn        \	        VP
                  4      V n        \        VP                  ^V P                  ^,
          ,          ,          4      V n	        \        V4      V n        \        V4      V n        \        P                  ! V P                  VP                   R7      V n        V'       d   \        P$                  ! ^4      MRV n        V P)                  4        R# )z^
add_pooling_layer (bool, *optional*, defaults to `True`):
    Whether to add a pooling layer
Únattenr  N)rF   rG   r   rR   rS  rT  rU  rƒ   rK   Únum_featuresrD   r\   rP  Úencoderr   rJ   r  Ú	layernormÚAdaptiveAvgPool1dÚpoolerÚ	post_init)rQ   rR   Úadd_pooling_layerrS   s   &&&€r   rG   ÚDinatModel.__init__  s±   ø€ ô
 	‰Ñ˜Ô ä˜$  
Ô+àŒÜ˜fŸm™mÓ,ˆŒÜ × 0Ñ 0°1¸¿¹È1Õ9LÕ3MÕ MÓNˆÔä)¨&Ó1ˆŒÜ# FÓ+ˆŒäŸš d×&7Ñ&7¸V×=RÑ=RÔSˆŒß1B”b×*Ò*¨1Ô-ÈˆŒð 	�‰Ör   c                ó.   € V P                   P                  # r   ©r\   rI   r  s   &r   Úget_input_embeddingsÚDinatModel.get_input_embeddings4  ó   € Ø�‰×/Ñ/Ð/r   c                ó”   <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# )r!   rW   Nr§   r_  ra  rX   )r'   r(   r©   r)   r9   )r*   r+   s   "€r   r,   ÚDinatModel.__annotate__8  sZ   ø€ ÷ -
ñ -
á×'Ñ'¨$Õ.ð-
ñ   $�;ð-
ñ # T�kð	-
ñ
 ˜D•[ð-
ñ 
Ñ!Õ	!ñ-
r   c                óŠ  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pVf   \	        R4      hV P                  V4      pV P                  VVVVR7      pV^ ,          pV P                  V4      pR p	V P                  eI   V P                  VP                  ^^4      P                  ^^4      4      p	\        P                  ! V	^4      p	V'       g   W‰3VR,          ,           p
V
# \        VV	VP                  VP                  VP                  R7      # )Nz You have to specify pixel_values©r§   r_  ra  rØ   )r"   r;   r#   r$   r%   )rR   r§   r_  ra  ro   r\   r}  r~  r€  Úflattenr¯   r'   r9   r#   r$   r%   )rQ   rW   r§   r_  ra  r   Úembedding_outputÚencoder_outputsÚsequence_outputÚpooled_outputrÒ   s   &&&&&,     r   r]   ÚDinatModel.forward7  s=  € ð 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆàÒÜÐ?Ó@Ð@àŸ?™?¨<Ó8ÐàŸ,™,ØØ/Ø!5Ø#ð	 'ó 
ˆð *¨!Õ,ˆØŸ.™.¨Ó9ˆàˆØ�;‰;Ò"Ø ŸK™K¨×(?Ñ(?ÀÀ1Ó(E×(OÑ(OÐPQÐSTÓ(UÓVˆMÜ!ŸMšM¨-¸Ó;ˆMçØ%Ð5¸ÈÕ8KÕKˆFàˆMäØ-Ø'Ø)×7Ñ7Ø&×1Ñ1Ø#2×#IÑ#Iô
ð 	
r   )rR   r\   r}  r~  r|  rU  r€  )T)NNNN)r/   r0   r1   r2   rG   r†  r   r]   r5   r6   r`   ra   s   @@r   ry  ry    s-   ù‡ € ÷ò,0ð ÷-
ñ -
ó ÷-
ð -
r   ry  z¦
    Dinat Model transformer with an image classification head on top (a linear layer on top of the final hidden state
    of the [CLS] token) e.g. for ImageNet.
    c                   óR   a a€ ] tR tRt oV 3R lt]RV3R lR ll4       tRtVtV ;t	# )ÚDinatForImageClassificationih  c                ób  <€ \         SV `  V4       \        V R .4       VP                  V n        \	        V4      V n        VP                  ^ 8”  d6   \        P                  ! V P
                  P                  VP                  4      M\        P                  ! 4       V n
        V P                  4        R# ©r{  N)rF   rG   r   Ú
num_labelsry  rq  r   rœ   r|  r  Ú
classifierr�  rP   s   &&€r   rG   Ú$DinatForImageClassification.__init__o  s„   ø€ Ü‰Ñ˜Ô ä˜$  
Ô+à ×+Ñ+ˆŒÜ Ó'ˆŒ
ð FL×EVÑEVÐYZÔEZŒB�IŠI�d—j‘j×-Ñ-¨v×/@Ñ/@ÔAÔ`b×`kÒ`kÓ`mð 	Œð
 	�‰Ör   c                ó¼   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# )r!   rW   NÚlabelsr§   r_  ra  rX   )r'   r(   Ú
LongTensorr©   r)   r>   )r*   r+   s   "€r   r,   Ú(DinatForImageClassification.__annotate__€  so   ø€ ÷ *
ñ *
á×'Ñ'¨$Õ.ð*
ñ × Ñ  4Õ'ð*
ñ   $�;ð	*
ñ
 # T�kð*
ñ ˜D•[ð*
ñ 
Ñ+Õ	+ñ*
r   c                óŠ  € Ve   TMV P                   P                  pV P                  VVVVR7      pV^,          pV P                  V4      p	Rp
Ve   V P	                  W)V P                   4      p
V'       g"   V	3VR,          ,           pV
e   V
3V,           # T# \        V
V	VP                  VP                  VP                  R7      # )ab  
labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
    Labels for computing the image classification/regression loss. Indices should be in `[0, ...,
    config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
    `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
NrŒ  rd  )r@   rA   r#   r$   r%   )	rR   ra  rq  r˜  Úloss_functionr>   r#   r$   r%   )rQ   rW   r›  r§   r_  ra  r   r¿   r‘  rA   r@   rÒ   s   &&&&&&,     r   r]   Ú#DinatForImageClassification.forward  sË   € ð  &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà—*‘*ØØ/Ø!5Ø#ð	 ó 
ˆð   �
ˆà—‘ Ó/ˆàˆØÒØ×%Ñ% f°d·k±kÓBˆDçØ�Y ¨¥Õ,ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä)ØØØ!×/Ñ/Ø×)Ñ)Ø#*×#AÑ#Aô
ð 	
r   )r˜  rq  r—  )NNNNN)
r/   r0   r1   r2   rG   r   r]   r5   r6   r`   ra   s   @@r   r”  r”  h  s(   ù‡ € õð  ÷*
ñ *
ó ÷*
ð *
r   r”  zL
    NAT backbone, to be used with frameworks like DETR and MaskFormer.
    c                   ól   a a€ ] tR tRt oV 3R ltR t]]]RV3R lR ll4       4       4       t	Rt
VtV ;t# )ÚDinatBackbonei­  c           	     ó2  <€ \         SV `  V4       \        V R .4       \        V4      V n        \        V4      V n        VP                  .\        \        VP                  4      4       Uu. uF&  p\        VP                  ^V,          ,          4      NK(  	  up,           V n        / p\        V P                  V P                  4       F  w  rE\         P"                  ! V4      W4&   K  	  \         P$                  ! V4      V n        V P)                  4        R# u upi r–  )rF   rG   r   rD   r\   rP  r}  rK   r?  rS  rT  rƒ   r|  ÚzipÚout_featuresr2  r   rJ   Ú
ModuleDictÚhidden_states_normsr�  )rQ   rR   rE  r§  Ústagern   rS   s   &&    €r   rG   ÚDinatBackbone.__init__³  sà   ø€ Ü‰Ñ˜Ô ä˜$  
Ô+ä)¨&Ó1ˆŒÜ# FÓ+ˆŒØ#×-Ñ-Ð.ÔX]Ô^aÐbh×boÑboÓ^pÔXqÓ1rÑXqÐST´#°f×6FÑ6FÈÈAÍÕ6MÖ2NÑXqÑ1rÕrˆÔð !ÐÜ#& t×'8Ñ'8¸$¿-¹-Ö#HÑˆEÜ)+¯ª°lÓ)CÐÓ&ñ $Iä#%§=¢=Ð1DÓ#EˆÔ ð 	�‰Öùò 2ss   Á*,Dc                ó.   € V P                   P                  # r   r…  r  s   &r   r†  Ú"DinatBackbone.get_input_embeddingsÅ  rˆ  r   c          
      óv   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[R,          RS[R,          RS[/# )r!   rW   r_  Nr§   ra  rX   )r'   rY   r©   r   )r*   r+   s   "€r   r,   ÚDinatBackbone.__annotate__Ë  sT   ø€ ÷ J
ñ J
á—l‘lðJ
ñ # T�kðJ
ñ   $�;ð	J
ñ
 ˜D•[ðJ
ñ 
ñJ
r   c                ó`  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pV P	                  V4      pV P                  VVRRRR7      pVP                  pRp	\        V P                  V4       F·  w  r«W P                  9   g   K  VP                  w  rÍrïVP                  ^ ^^^4      P                  4       pVP                  WÎV,          V4      pV P                  V
,          ! V4      pVP                  WÎWý4      pVP                  ^ ^^^4      P                  4       pW›3,          p	K¹  	  V'       g"   V	3pV'       d   VVP                  3,          pV# \!        T	V'       d   VP                  MR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("shi-labs/nat-mini-in1k-224")
>>> model = AutoBackbone.from_pretrained(
...     "shi-labs/nat-mini-in1k-224", out_features=["stage1", "stage2", "stage3", "stage4"]
... )

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

>>> outputs = model(**inputs)

>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
[1, 512, 7, 7]
```NT)r§   r_  r`  ra  )Úfeature_mapsr#   r$   r.   )rR   ra  r_  r§   r\   r}  r%   r¤  Ústage_namesr¥  rx   ry   r´   r®   r§  r#   r   r$   )rQ   rW   r_  r§   ra  r   rŽ  r¿   r#   r¯  r¨  Úhidden_stater1  rn   r{   r|   rÒ   s   &&&&&,           r   r]   ÚDinatBackbone.forwardÈ  sŸ  € ðL &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐàŸ?™?¨<Ó8Ðà—,‘,ØØ/Ø!%Ø59Øð ó 
ˆð  ×6Ñ6ˆàˆÜ#& t×'7Ñ'7¸Ö#GÑˆEØ×)Ñ)Ö)Ø:F×:LÑ:LÑ7�
¨&Ø+×3Ñ3°A°q¸!¸QÓ?×JÑJÓL�Ø+×0Ñ0°Àe½^È\ÓZ�Ø#×7Ñ7¸Ö>¸|ÓL�Ø+×0Ñ0°ÀUÓY�Ø+×3Ñ3°A°q¸!¸QÓ?×JÑJÓL�Ø Õ/’ñ $H÷ Ø"�_ˆFß#Ø˜7×0Ñ0Ð2Õ2�ØˆMäØ%ß3G˜'×/Ò/ÈTØ×)Ñ)ô
ð 	
r   )r\   r}  r§  r|  )NNN)r/   r0   r1   r2   rG   r†  r   r   r   r]   r5   r6   r`   ra   s   @@r   r¢  r¢  ­  sA   ù‡ € õò$0ð Ø Ø÷J
ñ J
ó ó !ó ÷J
ð J
r   r¢  )r”  ry  rp  r¢  )1r3   r°   Údataclassesr   r'   r   Úactivationsr   Úbackbone_utilsr   r   Úmodeling_outputsr   Úmodeling_utilsr   Úutilsr	   r
   r   r   r   Úutils.genericr   Úconfiguration_dinatr   Únatten.functionalr   r   r   r9   r>   r„   rD   rH   r   r’   rÄ   rÐ   rÝ   rí   rõ   r  r<  rP  rp  ry  r”  r¢  Ú__all__r.   r   r   Ú<module>r½     sE  ðñ @ã Ý !ã Ý å !ß HÝ .Ý -÷õ õ .Ý ,ñ ×Òß;Ð;ò/ò/ñ ðôð
 ôH˜ó Hó óðHñ  ðôð
 ôH�{ó Hó óðHñ& ðôð
 ôH ó Hó óðHô*�b—i‘iô ô,!˜2Ÿ9™9ô !ôH�r—y‘yô ô.8˜BŸI™Iô 8ôv
 "§)¡)ô 
ô "§)¡)ô ô"˜Ÿ	™	ô ô	�"—)‘)ô 	ô%�B—I‘Iô %ô0D�—‘ô DôN,�—‘ô ,ô^C
�2—9‘9ô C
ðL ô"˜?ó "ó ð"ð ôH
Ð%ó H
ó ðH
ñV ðôô<
Ð"6ó <
óð<
ñ~ ðôô
c
�MÐ#7ó c
óð
c
òL a‚r   