+
     °³jè%  ã                   ót  € ^ RI Ht ^ RIHtHtHt ^ RIt^ RIHtHt ^RI	H
t
 ^RI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Ot ! R R]P4                  4      t ! R R]P4                  4      tRRRRR]/t ! R R]4      t]! 4       ]! R]P>                  3R7      RRRR/R R ll4       4       t R# )é    )Úpartial)ÚAnyÚCallableÚOptionalN)ÚnnÚTensor)ÚConv2dNormActivation)ÚImageClassification)Ú_log_api_usage_once)Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_make_divisibleÚ_ovewrite_named_paramÚhandle_legacy_interfaceÚMobileNetV2ÚMobileNet_V2_Weightsc                   óT   a a€ ] tR t^t oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚInvertedResidualc                ót   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RS[S[RS[P                  3,          ,          RR/# )	é   ÚinpÚoupÚstrideÚexpand_ratioÚ
norm_layer.ÚreturnN)Úintr   r   r   ÚModule)ÚformatÚ__classdict__s   "€Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/models/mobilenetv2.pyÚ__annotate__ÚInvertedResidual.__annotate__   sU   ø€ ÷ &!ñ &!Ùð&!Ù ð&!Ù*-ð&!Ù=@ð&!ÙNVÑW_Ð`cÑeg×enÑenÐ`nÕWoÕNpð&!à	ñ&!ó    c                óR  <€ \         SV `  4        W0n        VR9  d   \        RV 24      hVf   \        P
                  p\        \        W,          4      4      pV P                  ^8H  ;'       d    W8H  V n        . pV^8w  d-   VP                  \        W^V\        P                  R7      4       VP                  \        VVVVV\        P                  R7      \        P                  ! Wb^^^ RR7      V! V4      .4       \        P                  ! V!  V n        W n        V^8„  V n        R# )é   z#stride should be 1 or 2 instead of N©Úkernel_sizer   Úactivation_layer)r   Úgroupsr   r+   F)Úbias)r(   r   )ÚsuperÚ__init__r   Ú
ValueErrorr   ÚBatchNorm2dr   ÚroundÚuse_res_connectÚappendr	   ÚReLU6ÚextendÚConv2dÚ
SequentialÚconvÚout_channelsÚ_is_cn)	Úselfr   r   r   r   r   Ú
hidden_dimÚlayersÚ	__class__s	   &&&&&&  €r#   r/   ÚInvertedResidual.__init__   s  ø€ ô 	‰ÑÔØŒØ˜ÔÜÐBÀ6À(ÐKÓLÐLàÒÜŸ™ˆJäœ˜sÕ1Ó2Ó3ˆ
Ø#Ÿ{™{¨aÑ/×>Ð>°C±JˆÔà"$ˆØ˜1Ôà�M‰MÜ$ SÀ!ÐPZÔmo×muÑmuÔvôð 	�‰ô %ØØØ!Ø%Ø)Ü%'§X¡Xôô —	’	˜*¨1¨a°¸Ô?Ù˜3“ðô	
ô  —M’M 6Ñ*ˆŒ	ØÔØ˜q‘jˆŽr&   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r   Úxr   ©r   )r!   r"   s   "€r#   r$   r%   <   s   ø€ ÷  ñ  ™ð  ¡Fñ  r&   c                óv   € V P                   '       d   WP                  V4      ,           # V P                  V4      # ©N)r3   r9   ©r<   rC   s   &&r#   ÚforwardÚInvertedResidual.forward<   s-   € Ø××ÐØ—y‘y “|Õ#Ð#à—9‘9˜Q“<Ðr&   )r;   r9   r:   r   r3   rF   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r/   rH   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r?   r"   s   @@r#   r   r      s   ù‡ € ÷&!õ &!÷P ÷  ð  r&   r   c                   óf   a a€ ] tR t^Ct o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	# )	r   c                óè   <€ V ^8„  d   QhRS[ RS[RS[S[S[S[ ,          ,          ,          RS[ RS[S[RS[P                  3,          ,          RS[S[RS[P                  3,          ,          RS[R	R
/# )r   Únum_classesÚ
width_multÚinverted_residual_settingÚround_nearestÚblock.r   Údropoutr   N)r   Úfloatr   Úlistr   r   r    )r!   r"   s   "€r#   r$   ÚMobileNetV2.__annotate__D   s–   ø€ ÷ ]'ñ ]'áð]'ñ ð]'ñ $,©D±±cµ­OÕ#<ð	]'ñ
 ð]'ñ ™ ¡b§i¡i Õ0Õ1ð]'ñ ™X c©2¯9©9 nÕ5Õ6ð]'ñ ð]'ð 
ñ]'r&   c                óæ  <€ \         SV `  4        \        V 4       Vf   \        pVf   \        P
                  p^ pRp	Vf   . RO. RO. RO. RO. RO. RO. RO.p\        V4      ^ 8X  g   \        V^ ,          4      ^8w  d   \        RV 24      h\        W‚,          V4      p\        V	\        RV4      ,          V4      V n
        \        ^V^V\        P                  R7      .p
V FQ  w  r¼rÞ\        WÂ,          V4      p\        V4       F*  pV^ 8X  d   TM^pV
P                  V! W�VW¶R7      4       TpK,  	  KS  	  V
P                  \        W€P                  ^V\        P                  R7      4       \        P                  ! V
!  V n        \        P                  ! \        P"                  ! VR7      \        P$                  ! V P                  V4      4      V n        V P)                  4        EF†  p\+        V\        P,                  4      '       dg   \        P.                  P1                  VP2                  R	R
7       VP4                  e,   \        P.                  P7                  VP4                  4       Kˆ  KŠ  \+        V\        P
                  \        P8                  34      '       dV   \        P.                  P;                  VP2                  4       \        P.                  P7                  VP4                  4       EK  \+        V\        P$                  4      '       g   EK2  \        P.                  P=                  VP2                  ^ R4       \        P.                  P7                  VP4                  4       EK‰  	  R# )a  
MobileNet V2 main class

Args:
    num_classes (int): Number of classes
    width_mult (float): Width multiplier - adjusts number of channels in each layer by this amount
    inverted_residual_setting: Network structure
    round_nearest (int): Round the number of channels in each layer to be a multiple of this number
    Set to 1 to turn off rounding
    block: Module specifying inverted residual building block for mobilenet
    norm_layer: Module specifying the normalization layer to use
    dropout (float): The droupout probability

Ni   zGinverted_residual_setting should be non-empty or a 4-element list, got ç      ð?)r   r   r+   )r   r   r)   )ÚpÚfan_out)Úmodeg{®Gáz„?)r(   é   r(   r(   )é   é   r   r   )rc   é    é   r   )rc   é@   é   r   )rc   é`   rf   r(   )rc   é    rf   r   )rc   i@  r(   r(   )r.   r/   r   r   r   r1   Úlenr0   r   ÚmaxÚlast_channelr	   r5   Úranger4   r8   ÚfeaturesÚDropoutÚLinearÚ
classifierÚmodulesÚ
isinstancer7   ÚinitÚkaiming_normal_Úweightr-   Úzeros_Ú	GroupNormÚones_Únormal_)r<   rT   rU   rV   rW   rX   r   rY   Úinput_channelrm   ro   ÚtÚcÚnÚsÚoutput_channelÚir   Úmr?   s   &&&&&&&&           €r#   r/   ÚMobileNetV2.__init__D   sŒ  ø€ ô0 	‰ÑÔÜ˜DÔ!àŠ=Ü$ˆEàÒÜŸ™ˆJàˆØˆà$Ò,ò ÚÚÚÚÚÚð	)Ð%ô Ð(Ó)¨QÔ.´#Ð6OÐPQÕ6RÓ2SÐWXÔ2XÜØYÐZsÐYtÐuóð ô
 (¨Õ(BÀMÓRˆÜ+¨L¼3¸sÀJÓ;OÕ,OÐQ^Ó_ˆÔä   M¸!È
Ôeg×emÑemÔnð%
ˆó 4‰JˆA�!Ü,¨Q­^¸]ÓKˆNÜ˜1–X�Ø 1œf™¨!�Ø—‘¡ mÀVÐZ[Ô sÔtØ .’ó ñ 4ð 	�‰Ü Ø×0Ñ0¸aÈJÔik×iqÑiqôô	
ô Ÿš xÑ0ˆŒô Ÿ-š-Ü�JŠJ˜Ô!Ü�IŠI�d×'Ñ'¨Ó5ó
ˆŒð —‘—ˆAÜ˜!œRŸY™Y×'Ò'Ü—‘×'Ñ'¨¯©°yÐ'ÔAØ—6‘6Ò%Ü—G‘G—N‘N 1§6¡6Ö*ñ &ä˜A¤§¡´·±Ð=×>Ò>Ü—‘—‘˜aŸh™hÔ'Ü—‘—‘˜qŸv™v×&Ü˜AœrŸy™y×)Õ)Ü—‘—‘ §¡¨!¨TÔ2Ü—‘—‘˜qŸv™v×&ó  r&   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# rB   rD   )r!   r"   s   "€r#   r$   r\   £   s   ø€ ÷ ñ ™vð ©&ñ r&   c                ó¸   € V P                  V4      p\        P                  P                  VR4      p\        P
                  ! V^4      pV P                  V4      pV# )r(   ©r(   r(   )ro   r   Ú
functionalÚadaptive_avg_pool2dÚtorchÚflattenrr   rG   s   &&r#   Ú_forward_implÚMobileNetV2._forward_impl£   sK   € ð �M‰M˜!Óˆä�M‰M×-Ñ-¨a°Ó8ˆÜ�MŠM˜!˜QÓˆØ�O‰O˜AÓˆØˆr&   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# rB   rD   )r!   r"   s   "€r#   r$   r\   ­   s   ø€ ÷ %ñ %™ð %¡Fñ %r&   c                ó$   € V P                  V4      # rF   )rŒ   rG   s   &&r#   rH   ÚMobileNetV2.forward­   s   € Ø×!Ñ! !Ó$Ð$r&   )rr   ro   rm   )iè  r^   Né   NNgš™™™™™É?)
rJ   rK   rL   rM   r/   rŒ   rH   rN   rO   rP   rQ   s   @@r#   r   r   C   s+   ù‡ € ÷]'õ ]'÷~ð ÷%÷ %ð %r&   Ú
num_paramsièz5 Úmin_sizeÚ
categoriesc                   ó¸   € ] tR t^¸t]! R]! ]^àR7      / ]CRRRRRRR	R
//RRRRRR/CR7      t]! R]! ]^à^èR7      / ]CRRRRRRR	R//RRRRRR/CR7      t	]	t
RtR# )r   z=https://download.pytorch.org/models/mobilenet_v2-b0353104.pth)Ú	crop_sizeÚrecipezQhttps://github.com/pytorch/vision/tree/main/references/classification#mobilenetv2Ú_metricszImageNet-1Kzacc@1gÕxé&1øQ@zacc@5gü©ñÒM’V@Ú_opsgÝ$�•CÓ?Ú
_file_sizeg\�Âõ(+@Ú_docszXThese weights reproduce closely the results of the paper using a simple training recipe.)ÚurlÚ
transformsÚmetaz=https://download.pytorch.org/models/mobilenet_v2-7ebf99e0.pth)r–   Úresize_sizezHhttps://github.com/pytorch/vision/issues/3995#new-recipe-with-reg-tuningg`åÐ"Û	R@gøSã¥›´V@gV-2+@a$  
                These weights improve upon the results of the original paper by using a modified version of TorchVision's
                `new training recipe
                <https://pytorch.org/blog/how-to-train-state-of-the-art-models-using-torchvision-latest-primitives/>`_.
            © N)rJ   rK   rL   rM   r   r   r
   Ú_COMMON_METAÚIMAGENET1K_V1ÚIMAGENET1K_V2ÚDEFAULTrN   r    r&   r#   r   r   ¸   sÇ   † ÙØKÙÐ.¸#Ô>ð
Øð
àÐiØØØ˜VØ˜Vð ðð �EØ˜&ØÐsñ
ô€Mñ" ØKÙÐ.¸#È3ÔOð
Øð
àÐ`ØØØ˜VØ˜Vð ðð �EØ˜&Øð ñ
ô€Mð* „Gr&   Ú
pretrained)Úweightsr¦   ÚprogressTc                ó^   € V ^8„  d   QhR\         \        ,          R\        R\        R\        /# )r   r¦   r§   Úkwargsr   )r   r   Úboolr   r   )r!   s   "r#   r$   r$   ä   s2   € ÷  ñ  ÜÔ-Õ.ð ÜAEð ÜX[ð äñ r&   c                óè   € \         P                  V 4      p V e(   \        VR\        V P                  R,          4      4       \        R/ VB pV e#   VP                  V P                  VRR7      4       V# )aq  MobileNetV2 architecture from the `MobileNetV2: Inverted Residuals and Linear
Bottlenecks <https://arxiv.org/abs/1801.04381>`_ paper.

Args:
    weights (:class:`~torchvision.models.MobileNet_V2_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.MobileNet_V2_Weights` below for
        more details, and possible values. By default, no pre-trained
        weights are used.
    progress (bool, optional): If True, displays a progress bar of the
        download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.mobilenetv2.MobileNetV2``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/mobilenetv2.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.MobileNet_V2_Weights
    :members:
rT   r”   T)r§   Ú
check_hashr    )r   Úverifyr   rk   rž   r   Úload_state_dictÚget_state_dict)r¦   r§   r©   Úmodels   $$, r#   Úmobilenet_v2r±   â   sk   € ô0 #×)Ñ)¨'Ó2€GàÒÜ˜f m´S¸¿¹ÀlÕ9SÓ5TÔUäÑ!˜&Ñ!€EàÒØ×Ñ˜g×4Ñ4¸hÐSWÐ4ÓXÔYà€Lr&   )r   r   r±   r‡   )!Ú	functoolsr   Útypingr   r   r   rŠ   r   r   Úops.miscr	   Útransforms._presetsr
   Úutilsr   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   r   Ú__all__r    r   r   r¡   r   r¢   r±   r    r&   r#   Ú<module>r»      s¿   ðÝ ß *Ñ *ã ß å +Ý 5Ý 'ß 6Ñ 6Ý 'ß SÑ Sò B€ô- �r—y‘yô - ô`k%�"—)‘)ô k%ð^ �'Ø�ØÐ&ð€ô'˜;ô 'ñT ÓÙ ,Ð0D×0RÑ0RÐ!SÔTð Ø15ð ØHLö ó Uó ò r&   