+
     °³jÕ  ã            
       óº  € ^ RI Ht ^ RIHt ^ RIHtHt ^ RIHtH	t	 ^ RI
Ht ^RIHt ^RIHt ^RIHtHtHt ^R	IHt ^R
IHtHtHt ^RIHtHtHt . ROt ! R R]P@                  4      t! ! R R]P@                  4      t"R R lt# ! R R]4      t$]! 4       ]! R]$PJ                  3R]PL                  3R7      RRRRRRR]PL                  /R R ll4       4       t'R# ) é    )ÚOrderedDict)Úpartial)ÚAnyÚOptional)ÚnnÚTensor)Ú
functional)ÚSemanticSegmentation)Ú_log_api_usage_once)Úregister_modelÚWeightsÚWeightsEnum)Ú_VOC_CATEGORIES)Ú_ovewrite_value_paramÚhandle_legacy_interfaceÚIntermediateLayerGetter)Úmobilenet_v3_largeÚMobileNet_V3_Large_WeightsÚMobileNetV3ÚLRASPPÚ!LRASPP_MobileNet_V3_Large_Weightsc                   óX   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RtVtV ;t	# )r   aÕ  
Implements a Lite R-ASPP Network for semantic segmentation from
`"Searching for MobileNetV3"
<https://arxiv.org/abs/1905.02244>`_.

Args:
    backbone (nn.Module): the network used to compute the features for the model.
        The backbone should return an OrderedDict[Tensor], with the key being
        "high" for the high level feature map and "low" for the low level feature map.
    low_channels (int): the number of channels of the low level features.
    high_channels (int): the number of channels of the high level features.
    num_classes (int, optional): number of output classes of the model (including the background).
    inter_channels (int, optional): the number of channels for intermediate computations.
c                óP   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[RS[RR/# )é   ÚbackboneÚlow_channelsÚhigh_channelsÚnum_classesÚinter_channelsÚreturnN)r   ÚModuleÚint)ÚformatÚ__classdict__s   "€Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/models/segmentation/lraspp.pyÚ__annotate__ÚLRASPP.__annotate__#   sI   ø€ ÷ _ñ _ÙŸ	™	ð_Ù14ð_ÙEHð_ÙWZð_Ùloð_à	ñ_ó    c                óh   <€ \         SV `  4        \        V 4       Wn        \	        W#WE4      V n        R # )N)ÚsuperÚ__init__r   r   Ú
LRASPPHeadÚ
classifier)Úselfr   r   r   r   r   Ú	__class__s   &&&&&&€r%   r+   ÚLRASPP.__init__#   s+   ø€ ô 	‰ÑÔÜ˜DÔ!Ø ŒÜ$ \À+Ó^ˆŽr(   c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[ 3,          /# ©r   Úinputr    )r   ÚdictÚstr)r#   r$   s   "€r%   r&   r'   +   s$   ø€ ÷ ñ ™Vð ©©S±&¨[Õ(9ñ r(   c                ó²   € V P                  V4      pV P                  V4      p\        P                  ! W1P                  RR RRR7      p\        4       pW4R&   V# )r   NÚbilinearF©ÚsizeÚmodeÚalign_cornersÚoutéþÿÿÿ)r   r-   ÚFÚinterpolateÚshaper   )r.   r3   Úfeaturesr<   Úresults   &&   r%   ÚforwardÚLRASPP.forward+   sO   € Ø—=‘= Ó'ˆØ�o‰o˜hÓ'ˆÜ�mŠm˜C§k¡k°"°#Ð&6¸ZÐW\Ô]ˆä“ˆØˆu‰àˆr(   )r   r-   )é€   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r+   rC   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r/   r$   s   @@r%   r   r      s%   ù‡ € ñ÷_õ _÷÷ ð r(   c                   óP   a a€ ] tR t^6t oV3R lV 3R lltV3R lR ltRtVtV ;t# )r,   c          
      ó6   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RR/# )r   r   r   r   r   r    N)r"   )r#   r$   s   "€r%   r&   ÚLRASPPHead.__annotate__7   s9   ø€ ÷ Iñ I¡Sð I¹ð IÉ3ð IÑ`cð IÐhlñ Ir(   c           
     ó  <€ \         SV `  4        \        P                  ! \        P                  ! W$^RR7      \        P
                  ! V4      \        P                  ! RR7      4      V n        \        P                  ! \        P                  ! ^4      \        P                  ! W$^RR7      \        P                  ! 4       4      V n
        \        P                  ! W^4      V n        \        P                  ! WC^4      V n        R# )é   F)ÚbiasT)ÚinplaceN)r*   r+   r   Ú
SequentialÚConv2dÚBatchNorm2dÚReLUÚcbrÚAdaptiveAvgPool2dÚSigmoidÚscaleÚlow_classifierÚhigh_classifier)r.   r   r   r   r   r/   s   &&&&&€r%   r+   ÚLRASPPHead.__init__7   s§   ø€ Ü‰ÑÔÜ—=’=Ü�IŠI�m°Q¸UÔCÜ�NŠN˜>Ó*Ü�GŠG˜DÔ!ó
ˆŒô
 —]’]Ü× Ò  Ó#Ü�IŠI�m°Q¸UÔCÜ�JŠJ‹Ló
ˆŒ
ô
 !Ÿiši¨À1ÓEˆÔÜ!Ÿyšy¨ÀaÓHˆÖr(   c                ó<   <€ V ^8„  d   QhRS[ S[S[3,          RS[/# r2   )r4   r5   r   )r#   r$   s   "€r%   r&   rQ   F   s(   ø€ ÷ 	Bñ 	B™T¡#¡v +Õ.ð 	B±6ñ 	Br(   c                ó  € VR ,          pVR,          pV P                  V4      pV P                  V4      pWE,          p\        P                  ! WBP                  RR RRR7      pV P                  V4      V P                  V4      ,           # )ÚlowÚhighNr7   Fr8   r=   )rZ   r]   r>   r?   r@   r^   r_   )r.   r3   rc   rd   ÚxÚss   &&    r%   rC   ÚLRASPPHead.forwardF   st   € Ø�E�lˆØ�V�}ˆà�H‰H�T‹NˆØ�J‰J�tÓˆØ�EˆÜ�MŠM˜!§)¡)¨B¨C .°zÐQVÔWˆà×"Ñ" 3Ó'¨$×*>Ñ*>¸qÓ*AÕAÐAr(   )rZ   r_   r^   r]   )	rF   rG   rH   rI   r+   rC   rK   rL   rM   rN   s   @@r%   r,   r,   6   s#   ù‡ € ÷Ió I÷	B÷ 	Bð 	Br(   r,   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   r   r   r    )r   r"   r   )r#   s   "r%   r&   r&   R   s&   € ÷ Fñ F¤+ð F¼Cð FÄFñ Fr(   c           
      ó˜  € V P                   p ^ .\        V 4       UUu. uF  w  r#\        VRR4      '       g   K  VNK  	  upp,           \        V 4      ^,
          .,           pVR,          pVR,          pW,          P                  pW,          P                  p\        V \        V4      R\        V4      R/R7      p \        WW�4      # u uppi )r   Ú_is_cnFrc   rd   )Úreturn_layerséüÿÿÿéÿÿÿÿ)rA   Ú	enumerateÚgetattrÚlenÚout_channelsr   r5   r   )	r   r   ÚiÚbÚstage_indicesÚlow_posÚhigh_posr   r   s	   &&       r%   Ú_lraspp_mobilenetv3rw   R   sº   € Ø× Ñ €Hð �C¬°8Ô)<Ô\Ñ)<¡ ÄÈÈ8ÐUZ×@[Ÿ1˜1Ñ)<Ò\Õ\Ô`cÐdlÓ`mÐpqÕ`qÐ_rÕr€MØ˜BÕ€GØ˜RÕ €HØÕ$×1Ñ1€LØÕ&×3Ñ3€MÜ& xÄÀGÃÈeÔUXÐYaÓUbÐdjÐ?kÔl€Hä�(¨-ÓEÐEùó ]s
   �C¹Cc                   ól   € ] tR t^`t]! R]! ]RR7      RRR]RRRR	R
RRRRR//RRRRRR/R7      t]t	Rt
R# )r   zJhttps://download.pytorch.org/models/lraspp_mobilenet_v3_large-d234d4ea.pthi  )Úresize_sizeÚ
num_paramsi"(1 Ú
categoriesÚmin_sizeÚrecipez]https://github.com/pytorch/vision/tree/main/references/segmentation#lraspp_mobilenet_v3_largeÚ_metricszCOCO-val2017-VOC-labelsÚmioug33333óL@Ú	pixel_accgÍÌÌÌÌÌV@Ú_opsgã¥›Ä ° @Ú
_file_sizeg{®Gáú(@Ú_docsz¦
                These weights were trained on a subset of COCO, using only the 20 categories that are present in the
                Pascal VOC dataset.
            )ÚurlÚ
transformsÚmeta© N)rS   rS   )rF   rG   rH   rI   r   r   r
   r   ÚCOCO_WITH_VOC_LABELS_V1ÚDEFAULTrK   r‡   r(   r%   r   r   `   sj   † Ù%ØXÙÐ/¸SÔAà˜'Ø˜/Ø˜ØÐuØØ)Ø˜DØ ð,ðð �EØ˜%Øð ð
ôÐð, &„Gr(   Ú
pretrainedÚpretrained_backbone)ÚweightsÚweights_backbonerŒ   NÚprogressTr   r�   c                ó¢   € V ^8„  d   QhR\         \        ,          R\        R\         \        ,          R\         \        ,          R\
        R\        /# )r   rŒ   rŽ   r   r�   Úkwargsr    )r   r   Úboolr"   r   r   r   )r#   s   "r%   r&   r&      sV   € ÷ 3ñ 3äÔ7Õ8ð3ô ð3ô œ#•ð	3ô
 Ô9Õ:ð3ô ð3ô ñ3r(   c                ó†  € VP                  RR4      '       d   \        R4      h\        P                  V 4      p \        P                  ! V4      pV e+   Rp\        RV\        V P                  R,          4      4      pMVf   ^p\        VRR7      p\        WR4      pV e#   VP                  V P                  VRR	7      4       V# )
a(  Constructs a Lite R-ASPP Network model with a MobileNetV3-Large backbone from
`Searching for MobileNetV3 <https://arxiv.org/abs/1905.02244>`_ paper.

.. betastatus:: segmentation module

Args:
    weights (:class:`~torchvision.models.segmentation.LRASPP_MobileNet_V3_Large_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.segmentation.LRASPP_MobileNet_V3_Large_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.
    num_classes (int, optional): number of output classes of the model (including the background).
    aux_loss (bool, optional): If True, it uses an auxiliary loss.
    weights_backbone (:class:`~torchvision.models.MobileNet_V3_Large_Weights`, optional): The pretrained
        weights for the backbone.
    **kwargs: parameters passed to the ``torchvision.models.segmentation.LRASPP``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/segmentation/lraspp.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.segmentation.LRASPP_MobileNet_V3_Large_Weights
    :members:
Úaux_lossFz&This model does not use auxiliary lossNr   r{   T)rŒ   Údilated)rŽ   Ú
check_hash)ÚpopÚNotImplementedErrorr   Úverifyr   r   rp   r†   r   rw   Úload_state_dictÚget_state_dict)rŒ   rŽ   r   r�   r�   r   Úmodels   $$$$,  r%   Úlraspp_mobilenet_v3_largerœ   z   s¹   € ðL ‡z�z�*˜e×$Ò$Ü!Ð"JÓKÐKä/×6Ñ6°wÓ?€GÜ1×8Ò8Ð9IÓJÐàÒØÐÜ+¨M¸;ÌÈGÏLÉLÐYeÕLfÓHgÓh‰Ø	Ò	Øˆä!Ð*:ÀDÔI€HÜ Ó6€EàÒØ×Ñ˜g×4Ñ4¸hÐSWÐ4ÓXÔYà€Lr(   )r   r   rœ   )(Úcollectionsr   Ú	functoolsr   Útypingr   r   Útorchr   r   Útorch.nnr	   r>   Útransforms._presetsr
   Úutilsr   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   r   Úmobilenetv3r   r   r   Ú__all__r!   r   r,   rw   r   rˆ   ÚIMAGENET1K_V1rœ   r‡   r(   r%   Ú<module>rª      sÛ   ðÝ #Ý ß  ç Ý $å 7Ý (ß 7Ñ 7Ý #ß \Ñ \ß UÑ Uò W€ô ˆR�Y‰Yô  ôFB�—‘ô Bõ8Fô&¨ô &ñ4 ÓÙØÐ<×TÑTÐUØ+Ð-G×-UÑ-UÐVôð3à;?ð3ð ð3ð "&ð	3ð
 >X×=eÑ=eö3ó	ó ò
3r(   