+
    œ°³j§&  ã                   ó@  € ^ RI Ht ^ RIt^ RIHu 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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! ]PD                  ! ]#4      t$RR.t%]! RR7      ] ! R R]4      4       4       t& ! R R]PN                  4      t( ! R R]PN                  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#]/4      t0] ! R$ R]/4      4       t1R# )%é    )Ú	dataclassN)Únn)Úinitialization)ÚBaseModelOutputÚModelOutput)ÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚlogging)Úmerge_with_config_defaults)Úcapture_outputs)ÚDinov2AttentionÚDinov2LayerÚDinov2LayerScaleÚ	Dinov2MLPÚDinov2SelfAttention©ÚRadioConfigÚ
RadioModelÚRadioPreTrainedModelzOutput of [`RadioModel`].)Úcustom_introc                   ó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# )ÚRadioModelOutputaÜ  
summary (`torch.FloatTensor` of shape `(batch_size, num_summary_idxs * hidden_size)`):
    Flattened summary embedding, gathered from the cls tokens selected by `config.summary_idxs`.
features (`torch.FloatTensor` of shape `(batch_size, num_patches, hidden_size)`):
    Dense spatial patch features.
last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):
    Full token sequence (prefix tokens + patches) from the final encoder layer.
Nc                ó   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  ,          R,          ;R&   S[S[ P                  ,          R,          ;R&   # )é   NÚsummaryÚfeaturesÚlast_hidden_stateÚhidden_statesÚ
attentions)ÚtorchÚFloatTensorÚtuple)ÚformatÚ__classdict__s   "€Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/radio/modular_radio.pyÚ__annotate__ÚRadioModelOutput.__annotate__+   s‡   ø‡ ‚ ñ ×Ñ Õ%Ñ,ñ ñ ×Ñ $Õ&Ñ-ñ ñ ×(Ñ(¨4Õ/Ñ6ñ ñ ™×*Ñ*Õ+¨dÕ2Ñ9ñ ñ  ‘e×'Ñ'Õ(¨4Õ/Ñ6ò! ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r    r!   r"   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r'   s   @r(   r   r   +   s-   ø‡ € ñð )-€GØ)-€HØ26ÐØ59€MØ26€J÷! ƒ r+   r   c                   ó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	# )ÚRadioInputConditionerzFNormalizes pixel values; arithmetic is done in float32 then cast back.c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfigr   )r&   r'   s   "€r(   r)   Ú"RadioInputConditioner.__annotate__A   s   ø€ ÷ añ a™{ñ ar+   c                óT  <€ \         SV `  4        \        P                  ! \        P
                  ! VP                  4      P                  R^^4      RR7      V n        \        P                  ! \        P
                  ! VP                  4      P                  R^^4      RR7      V n        R# )é   T©Ú
persistentNéÿÿÿÿ)	ÚsuperÚ__init__r   ÚBufferr#   ÚtensorÚ	norm_meanÚviewÚnorm_std©Úselfr:   Ú	__class__s   &&€r(   rB   ÚRadioInputConditioner.__init__A   sn   ø€ Ü‰ÑÔÜŸš¤5§<¢<°×0@Ñ0@Ó#A×#FÑ#FÀrÈ1ÈaÓ#PÐ]aÔbˆŒÜŸ	š	¤%§,¢,¨v¯©Ó"?×"DÑ"DÀRÈÈAÓ"NÐ[_Ô`ˆŽr+   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   Úpixel_valuesÚreturn©r#   ÚTensor)r&   r'   s   "€r(   r)   r;   F   s#   ø€ ÷ 1ñ 1¡E§L¡Lð 1±U·\±\ñ 1r+   c                óÔ   € VP                  4       V P                  P                  4       ,
          V P                  P                  4       ,          pVP                  VP                  4      # ©N)ÚfloatrE   rG   ÚtoÚdtype)rI   rN   Ú
normalizeds   && r(   ÚforwardÚRadioInputConditioner.forwardF   sI   € Ø"×(Ñ(Ó*¨T¯^©^×-AÑ-AÓ-CÕCÀtÇ}Á}×GZÑGZÓG\Õ\ˆ
Ø�}‰}˜\×/Ñ/Ó0Ð0r+   )rE   rG   )
r-   r.   r/   r0   r1   rB   rX   r3   r4   Ú__classcell__©rJ   r'   s   @@r(   r7   r7   >   s#   ù‡ € ÙP÷aó a÷
1÷ 1ð 1r+   r7   c                   óx   a a€ ] tR t^Kt 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V3R lR	 ltR
t	Vt
V ;t# )ÚRadioPatchEmbeddingszÉCropped Position Embedding (CPE) patch generator.

Splits the image into patches, projects them, adds a resolution-interpolated
absolute position embedding, and prepends learned cls + register tokens.
c                ó    <€ V ^8„  d   QhRS[ /# r9   r   )r&   r'   s   "€r(   r)   Ú!RadioPatchEmbeddings.__annotate__R   s   ø€ ÷ 
ñ 
™{ñ 
r+   c                ó   <€ \         SV `  4        VP                  V n        VP                  V n        VP
                  V n        VP                  V n        VP                  VP                  ,          V n        VP                  VP                  ,          V n	        V P                  V P                  ,          p\        P                  ! VP                  VP                  ^,          ,          VP                  RR7      V n        \        P                  ! \        P                   ! ^W!P                  4      4      V n        \        P                  ! \        P                   ! VP
                  VP                  ,           VP                  4      4      V n        R# )r   F)ÚbiasN)rA   rB   Ú
patch_sizeÚhidden_sizeÚ	embed_dimÚnum_cls_tokensÚnum_registersÚmax_img_sizeÚmax_rowsÚmax_colsr   ÚLinearÚnum_channelsÚpatch_projectionÚ	Parameterr#   ÚzerosÚposition_embeddingÚcls_register_token)rI   r:   Únum_positionsrJ   s   && €r(   rB   ÚRadioPatchEmbeddings.__init__R   s  ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØ×+Ñ+ˆŒØ$×3Ñ3ˆÔØ#×1Ñ1ˆÔà×+Ñ+¨v×/@Ñ/@Õ@ˆŒØ×+Ñ+¨v×/@Ñ/@Õ@ˆŒØŸ™¨¯©Õ5ˆä "§	¢	¨&×*=Ñ*=À×@QÑ@QÐSTÕ@TÕ*TÐV\×VhÑVhÐotÔ uˆÔÜ"$§,¢,¬u¯{ª{¸1¸m×M_ÑM_Ó/`Ó"aˆÔÜ"$§,¢,Ü�KŠK˜×-Ñ-°×0DÑ0DÕDÀf×FXÑFXÓYó#
ˆÖr+   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rM   rP   )r&   r'   s   "€r(   r)   r_   c   s#   ø€ ÷ ñ ©e¯l©lð ¹u¿|¹|ñ r+   c                óô   € V P                   pVP                  w  r4rVWR,          Wb,          r‡VP                  W4WrW‚4      p	V	P                  ^ ^^^^^4      P                  W7V,          WB,          V,          4      p	V	# )r   )rb   ÚshapeÚreshapeÚpermute)
rI   rN   ÚpsÚbatchÚchannelsÚheightÚwidthÚrowsÚcolsÚpatchess
   &&        r(   Ú_image_to_patchesÚ&RadioPatchEmbeddings._image_to_patchesc   sr   € Ø�_‰_ˆØ)5×);Ñ);Ñ&ˆ˜Ø•\ 5¥;ˆdØ×&Ñ& u¸À$ÓKˆØ—/‘/ ! Q¨¨1¨a°Ó3×;Ñ;¸EÈ$Å;ÐPXÕP]Ð`bÕPbÓcˆØˆr+   c                ój   <€ V ^8„  d   QhRS[ S[S[3,          RS[P                  RS[P                  /# )r   Ú
input_dimsrV   rO   )r%   Úintr#   rV   rQ   )r&   r'   s   "€r(   r)   r_   k   s8   ø€ ÷ 
/ñ 
/¹%ÁÁSÀ½/ð 
/ÑRW×R]ÑR]ð 
/Ñbg×bnÑbnñ 
/r+   c                óÞ  € V P                   P                  ^V P                  V P                  R4      P	                  ^ ^^^4      p\        V4      p\        P                  ! VP                  4       WD3RRR7      P                  V4      pV^ ,          VP                  R,          8  d   VRRV^ ,          1R3,          pV^,          VP                  R,          8  d   VRRRV^,          13,          pVP                  RR \        V4      8w  dA   \        P                  ! VP                  4       \        V4      RRR7      P                  V4      pVP                  ^4      P	                  ^ ^^4      # )	r=   ÚbilinearF)ÚsizeÚmodeÚalign_corners.NºNNNr@   éþÿÿÿ)ro   rv   rh   ri   rw   ÚmaxÚFÚinterpolaterT   rU   ru   r%   Úflatten)rI   rƒ   rV   ÚposÚmax_dims   &&&  r(   Ú_interpolate_position_embeddingÚ4RadioPatchEmbeddings._interpolate_position_embeddingk   s(  € Ø×%Ñ%×-Ñ-¨a°·±ÀÇÁÈrÓR×ZÑZÐ[\Ð^_ÐabÐdeÓfˆÜ�j“/ˆÜ�mŠm˜CŸI™I›K¨wÐ.@ÀzÐafÔg×jÑjÐkpÓqˆØ�a�=˜3Ÿ9™9 R�=Ô(Ø�c˜?˜Z¨�]˜?¨AÐ-Õ.ˆCØ�a�=˜3Ÿ9™9 R�=Ô(Ø�c˜1˜o 
¨1¥˜oÐ-Õ.ˆCØ�9‰9�R�Sˆ>œU :Ó.Ô.Ü—-’- §	¡	£´%¸
Ó2CÈ*ÐdiÔj×mÑmÐnsÓtˆCØ�{‰{˜1‹~×%Ñ% a¨¨AÓ.Ð.r+   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rM   rP   )r&   r'   s   "€r(   r)   r_   w   s#   ø€ ÷ 3ñ 3¡E§L¡Lð 3±U·\±\ñ 3r+   c                óÀ  € V P                  V P                  V4      4      pVP                  R,          V P                  ,          VP                  R,          V P                  ,          3pW P	                  W2P
                  4      ,           pV P                  P                  ^ 4      P                  VP                  ^ ,          RR4      p\        P                  ! WB.^R7      # )r   )Údimr‹   r@   )rl   r€   ru   rb   r’   rV   rp   Ú	unsqueezeÚexpandr#   Úcat)rI   rN   r   rƒ   Úprefixs   &&   r(   rX   ÚRadioPatchEmbeddings.forwardw   s­   € Ø×'Ñ'¨×(>Ñ(>¸|Ó(LÓMˆØ"×(Ñ(¨Õ,°·±Õ?À×ASÑASÐTVÕAWÐ[_×[jÑ[jÕAjÐkˆ
Ø×@Ñ@ÀÏ]É]Ó[Õ[ˆØ×(Ñ(×2Ñ2°1Ó5×<Ñ<¸W¿]¹]È1Õ=MÈrÐSUÓVˆÜ�yŠy˜&Ð*°Ô2Ð2r+   )	rp   rd   ri   rh   re   rf   rl   rb   ro   )r-   r.   r/   r0   r1   rB   r€   r’   rX   r3   r4   rZ   r[   s   @@r(   r]   r]   K   s7   ù‡ € ñ÷
ó 
÷"ð ÷
/ð 
/÷3÷ 3ð 3r+   r]   c                   ó   € ] tR t^tRtR# )ÚRadioMLPr,   N©r-   r.   r/   r0   r3   r,   r+   r(   r�   r�      ó   † Ûr+   r�   c                   ó   € ] tR t^ƒtRtR# )ÚRadioLayerScaler,   Nrž   r,   r+   r(   r¡   r¡   ƒ   rŸ   r+   r¡   c                   ó   € ] tR t^‡tRtR# )ÚRadioSelfAttentionr,   Nrž   r,   r+   r(   r£   r£   ‡   rŸ   r+   r£   c                   ó   € ] tR t^‹tRtR# )ÚRadioAttentionr,   Nrž   r,   r+   r(   r¥   r¥   ‹   rŸ   r+   r¥   c                   ó   € ] tR t^�tRtR# )Ú
RadioLayerr,   Nrž   r,   r+   r(   r§   r§   �   rŸ   r+   r§   c                   ó~   a € ] tR t^“t o ]tRtRtRtR.t	R.t
RtRtR]R]/t]P"                  ! 4       R 4       tR	tV tR
# )r   ÚmodelrN   Tr§   zlayer_scale\d+\.lambda1r!   r"   c                ó°  € V P                   P                  p\        V\        P                  4      '       dV   \
        P                  ! VP                  R VR7       VP                  e#   \
        P                  ! VP                  4       R# R# \        V\        P                  4      '       dC   \
        P                  ! VP                  4       \
        P                  ! VP                  4       R# \        V\        4      '       dI   \
        P                  ! VP                  R VR7       \
        P                  ! VP                  R VR7       R# \        V\        4      '       d8   \
        P                   ! VP"                  V P                   P$                  4       R# \        V\&        4      '       d·   \
        P(                  ! VP*                  \,        P.                  ! V P                   P*                  4      P1                  R^^4      4       \
        P(                  ! VP2                  \,        P.                  ! V P                   P2                  4      P1                  R^^4      4       R# \        V\4        4      '       d\   \
        P(                  ! VP6                  \,        P.                  ! V P                   P6                  \,        P8                  R7      4       R# R# )g        )ÚmeanÚstdN©rV   r@   )r:   Úinitializer_rangeÚ
isinstancer   rj   ÚinitÚtrunc_normal_Úweightra   Úzeros_Ú	LayerNormÚones_r]   ro   rp   r¡   Ú	constant_Úlambda1Úlayerscale_valuer7   Úcopy_rE   r#   rD   rF   rG   r   Úsummary_idxsÚlong)rI   Úmoduler¬   s   && r(   Ú_init_weightsÚ"RadioPreTrainedModel._init_weights¢   s±  € ð �k‰k×+Ñ+ˆÜ�fœbŸi™i×(Ò(Ü×Ò˜vŸ}™}°3¸CÕ@Ø�{‰{Ò&Ü—’˜FŸK™KÖ(ñ 'ä˜¤§¡×-Ò-Ü�KŠK˜Ÿ™Ô$Ü�JŠJ�v—}‘}Ö%Ü˜Ô 4×5Ò5Ü×Ò˜v×8Ñ8¸sÈÕLÜ×Ò˜v×8Ñ8¸sÈ×LÜ˜¤×0Ò0Ü�NŠN˜6Ÿ>™>¨4¯;©;×+GÑ+GÖHÜ˜Ô 5×6Ò6Ü�JŠJ�v×'Ñ'¬¯ª°d·k±k×6KÑ6KÓ)L×)QÑ)QÐRTÐVWÐYZÓ)[Ô\Ü�JŠJ�v—‘¬¯ª°T·[±[×5IÑ5IÓ(J×(OÑ(OÐPRÐTUÐWXÓ(YÖZÜ˜¤
×+Ò+Ü�JŠJ�v×*Ñ*¬E¯LªL¸¿¹×9QÑ9QÔY^×YcÑYcÔ,dÖeñ ,r+   r,   N)r-   r.   r/   r0   r   Úconfig_classÚbase_model_prefixÚmain_input_nameÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_keys_to_ignore_on_load_missingÚ_supports_sdpaÚ_supports_flash_attnr§   r£   Ú_can_record_outputsr#   Úno_gradr½   r3   r4   r5   s   @r(   r   r   “   sf   ø‡ € à€LØÐØ$€OØ&*Ð#Ø%˜ÐØ'AÐ&BÐ#Ø€NØÐà˜ØÐ(ðÐð
 ‡]‚]ƒ_ñfó öfr+   c                   ó|   a a€ ] tR t^ºt oV3R lV 3R llt]]! RR7      ]V3R lR l4       4       4       tRt	Vt
V ;t# )ÚRadioEncoderc                ó    <€ V ^8„  d   QhRS[ /# r9   r   )r&   r'   s   "€r(   r)   ÚRadioEncoder.__annotate__»   s   ø€ ÷ ñ ™{ñ r+   c                óÞ   <€ \         SV `  V4       \        P                  ! \	        VP
                  4       Uu. uF  p\        V4      NK  	  up4      V n        V P                  4        R # u upi rS   )	rA   rB   r   Ú
ModuleListÚrangeÚnum_hidden_layersr§   ÚlayerÚ	post_init)rI   r:   Ú_rJ   s   && €r(   rB   ÚRadioEncoder.__init__»   sQ   ø€ Ü‰Ñ˜Ô Ü—]’]ÄÀf×F^ÑF^Ô@_Ó#`Ñ@_¸1¤J¨vÖ$6Ñ@_Ñ#`ÓaˆŒ
Ø�‰Öùò $as   ¸A*F)Útie_last_hidden_statesc                óP   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[/# )r   r!   ÚkwargsrO   )r#   rQ   r	   r
   r   )r&   r'   s   "€r(   r)   rÌ   Ã   s2   ø€ ÷ @ñ @¡U§\¡\ð @¹VÑDVÕ=Wð @Ñ\kñ @r+   c                óP   € V P                    F  pV! V4      pK  	  \        VR 7      # ))r    )rÑ   r   )rI   r!   r×   rÑ   s   &&, r(   rX   ÚRadioEncoder.forwardÀ   s'   € ð —Z”ZˆEÙ! -Ó0ŠMñ  ä°Ô?Ð?r+   )rÑ   )r-   r.   r/   r0   rB   r   r   r   rX   r3   r4   rZ   r[   s   @@r(   rÊ   rÊ   º   s@   ù‡ € ÷ó ð
  Ù¨EÔ2Ø÷@ó ó 3ó  ÷@ð @r+   rÊ   c                   ó†   a a€ ] tR t^Ét oV3R lV 3R llt]V3R lR l4       tR t]]	V3R lR l4       4       t
RtVtV ;t# )	r   c                ó    <€ V ^8„  d   QhRS[ /# r9   r   )r&   r'   s   "€r(   r)   ÚRadioModel.__annotate__Ë   s   ø€ ÷ ñ ™{ñ r+   c                óH  <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        \        V4      V n        \        P                  ! \        P                  ! VP                  \        P                  R 7      RR7      V n        V P                  4        R# )r­   Tr>   N)rA   rB   r:   r7   Úinput_conditionerr]   Ú
embeddingsrÊ   Úencoderr   rC   r#   rD   rº   r»   rÒ   rH   s   &&€r(   rB   ÚRadioModel.__init__Ë   sm   ø€ Ü‰Ñ˜Ô ØŒÜ!6°vÓ!>ˆÔÜ.¨vÓ6ˆŒÜ# FÓ+ˆŒÜŸIšI¤e§l¢l°6×3FÑ3FÌeÏjÉjÔ&YÐfjÔkˆÔØ�‰Ör+   c                ó    <€ V ^8„  d   QhRS[ /# )r   rO   )r„   )r&   r'   s   "€r(   r)   rÜ   Õ   s   ø€ ÷ &ñ &™Cñ &r+   c                ó.   € V P                   P                  # rS   )r:   rb   )rI   s   &r(   rb   ÚRadioModel.patch_sizeÔ   s   € à�{‰{×%Ñ%Ð%r+   c                óR   € V P                   p\        P                  ! 4       V n         V# )zCDetach the input conditioner (caller applies normalization itself).)rÞ   r   ÚIdentity)rI   Úconditioners   & r(   Úmake_preprocessor_externalÚ%RadioModel.make_preprocessor_externalØ   s!   € à×,Ñ,ˆÜ!#§¢£ˆÔØÐr+   c                óP   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[/# )r   rN   r×   rO   )r#   rQ   r	   r
   r   )r&   r'   s   "€r(   r)   rÜ   à   s-   ø€ ÷ 
ñ 
¡E§L¡Lð 
¹FÑCUÕ<Vð 
Ñ[kñ 
r+   c                óœ  € V P                  V4      pV P                  V4      pV P                  ! V3/ VB pVP                  pV P                  P
                  pVR RV P                  P                  13,          pVR V P                  3,          P                  ^4      pVR VR13,          p	\        VV	VVP                  VP                  R7      # )rŠ   N)r   r   r    r!   r"   )rÞ   rß   rà   r    r:   Únum_summary_tokensre   rº   r�   r   r!   r"   )
rI   rN   r×   r!   Úencoder_outputsr    Únum_skipÚall_summaryr   r   s
   &&,       r(   rX   ÚRadioModel.forwardÞ   sÇ   € ð ×-Ñ-¨lÓ;ˆØŸ™¨Ó5ˆØ+/¯<ª<¸Ñ+PÈÑ+PˆØ+×=Ñ=Ðà—;‘;×1Ñ1ˆØ'¨Ð+G¨T¯[©[×-GÑ-GÐ+GÐ(GÕHˆØ˜a ×!2Ñ!2Ð2Õ3×;Ñ;¸AÓ>ˆØ$ Q¨©	 \Õ2ˆäØØØ/Ø)×7Ñ7Ø&×1Ñ1ô
ð 	
r+   )r:   rß   rà   rÞ   rº   )r-   r.   r/   r0   rB   Úpropertyrb   rè   r   r   rX   r3   r4   rZ   r[   s   @@r(   r   r   É   sI   ù‡ € ÷ó ð ÷&ó ð&òð Ø÷
ó ó ÷
ð 
r+   )2Údataclassesr   r#   Útorch.nn.functionalr   Ú
functionalr�   Ú r   r°   Úmodeling_outputsr   r   Úmodeling_utilsr   Úprocessing_utilsr	   Úutilsr
   r   r   r   Úutils.genericr   Úutils.output_capturingr   Údinov2.modeling_dinov2r   r   r   r   r   Úconfiguration_radior   Ú
get_loggerr-   ÚloggerÚ__all__r   ÚModuler7   r]   r�   r¡   r£   r¥   r§   r   rÊ   r   r,   r+   r(   Ú<module>r     s,  ðõ "ã ß Ð Ý å &ß <Ý -Ý &ß RÓ RÝ 7Ý 5÷õ õ -ð 
×	Ò	˜HÓ	%€àÐ/Ð
0€ñ Ð8Ô9Ø
ô7�{ó 7ó ó :ð7ô"
1˜BŸI™Iô 
1ô13˜2Ÿ9™9ô 13ôh	ˆyô 	ô	Ð&ô 	ô	Ð,ô 	ô	�_ô 	ô	�ô 	ð ô#f˜?ó #fó ð#fôL@Ð'ô @ð ô'
Ð%ó '
ó ò'
r+   