+
     °³jÇ  ã                   ó  € ^ RI t ^ RIt ^ RIHu Ht ^ RI HtHt ^RIHt RR R llt	RR R llt
] P                  P                  R4        ! R	 R
]P                  4      t] P                  P                  R4        ! R R]4      tR# )é    N)ÚnnÚTensor)Ú_log_api_usage_oncec                ól   € V ^8„  d   QhR\         R\        R\        R\        R\        R\        R\         /# ©é   ÚinputÚpÚ
block_sizeÚinplaceÚepsÚtrainingÚreturn©r   ÚfloatÚintÚbool)Úformats   "Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/ops/drop_block.pyÚ__annotate__r   	   sD   € ÷ .ñ .Üð.Üð.Ü),ð.Ü7;ð.ÜJOð.Ücgð.äñ.ó    c                óˆ  € \         P                  P                  4       '       g4   \         P                  P                  4       '       g   \	        \
        4       VR8  g   VR8”  d   \        RV R24      hV P                  ^8w  d   \        RV P                   R24      hV'       d   VR8X  d   V # V P                  4       w  rgr‰\        W)V4      pV^,          ^ 8X  d   \        RV R24      hW,          V	,          V^,          W‚,
          ^,           W’,
          ^,           ,          ,          ,          p
\         P                  ! WgW‚,
          ^,           W’,
          ^,           3V P                  V P                  R	7      pVP                  V
4       \        P                  ! W²^,          .^,          ^ R
7      p\        P                   ! VRW"3V^,          R7      p^V,
          pVP#                  4       WKP%                  4       ,           ,          pV'       d#   V P'                  V4      P'                  V4       V # W,          V,          p V # )aÒ  
Implements DropBlock2d from `"DropBlock: A regularization method for convolutional networks"
<https://arxiv.org/abs/1810.12890>`.

Args:
    input (Tensor[N, C, H, W]): The input tensor or 4-dimensions with the first one
                being its batch i.e. a batch with ``N`` rows.
    p (float): Probability of an element to be dropped.
    block_size (int): Size of the block to drop.
    inplace (bool): If set to ``True``, will do this operation in-place. Default: ``False``.
    eps (float): A value added to the denominator for numerical stability. Default: 1e-6.
    training (bool): apply dropblock if is ``True``. Default: ``True``.

Returns:
    Tensor[N, C, H, W]: The randomly zeroed tensor after dropblock.
ç        ç      ð?ú4drop probability has to be between 0 and 1, but got Ú.z#input should be 4 dimensional. Got ú dimensions.úblock size should be odd. Got ú which is even.©ÚdtypeÚdevice©Úvalue©ÚstrideÚkernel_sizeÚpadding)é   r)   )ÚtorchÚjitÚis_scriptingÚ
is_tracingr   Údrop_block2dÚ
ValueErrorÚndimÚsizeÚminÚemptyr!   r"   Ú
bernoulli_ÚFÚpadÚ
max_pool2dÚnumelÚsumÚmul_)r	   r
   r   r   r   r   ÚNÚCÚHÚWÚgammaÚnoiseÚnormalize_scales   &&&&&&       r   r.   r.   	   sÂ  € ô& �9‰9×!Ñ!×#Ò#¬E¯I©I×,@Ñ,@×,BÒ,BÜœLÔ)Øˆ3„w�!�c”'ÜÐOÐPQÈsÐRSÐTÓUÐUØ‡z�z�Q„ÜÐ>¸u¿z¹z¸lÈ,ÐWÓXÐXß�q˜C”xØˆà—‘“�J€Aˆ!Ü�Z AÓ&€JØ�A…~˜ÔÜÐ9¸*¸À_ÐUÓVÐVð �U�Q�Y˜J¨�M¨q­~ÀÕ/AÀaÅnÐWXÕFXÕ.YÕZÕ[€EÜ�KŠK˜˜q�~°Õ1°1µ>ÀAÕ3EÐFÈeÏkÉkÐbg×bnÑbnÔo€EØ	×Ñ�UÔä�EŠE�%¨�/Ð*¨QÕ.°aÔ8€EÜ�LŠL˜ v¸JÐ;SÐ]gÐklÕ]lÔm€EØ��I€EØ—k‘k“m s¯Y©Y«[Õ'8Õ9€OßØ�
‰
�5Ó×Ñ˜Ô/ð €Lð • Õ/ˆØ€Lr   c                ól   € V ^8„  d   QhR\         R\        R\        R\        R\        R\        R\         /# r   r   )r   s   "r   r   r   :   sD   € ÷ 2ñ 2Üð2Üð2Ü),ð2Ü7;ð2ÜJOð2Ücgð2äñ2r   c                óÞ  € \         P                  P                  4       '       g4   \         P                  P                  4       '       g   \	        \
        4       VR8  g   VR8”  d   \        RV R24      hV P                  ^8w  d   \        RV P                   R24      hV'       d   VR8X  d   V # V P                  4       w  rgr‰p
\        W(Wš4      pV^,          ^ 8X  d   \        RV R24      hW,          V	,          V
,          V^,          W‚,
          ^,           W’,
          ^,           ,          W¢,
          ^,           ,          ,          ,          p\         P                  ! WgW‚,
          ^,           W’,
          ^,           W¢,
          ^,           3V P                  V P                  R	7      pVP                  V4       \        P                  ! WÂ^,          .^,          ^ R
7      p\        P                   ! VRW"V3V^,          R7      p^V,
          pVP#                  4       WLP%                  4       ,           ,          pV'       d#   V P'                  V4      P'                  V4       V # W,          V,          p V # )aØ  
Implements DropBlock3d from `"DropBlock: A regularization method for convolutional networks"
<https://arxiv.org/abs/1810.12890>`.

Args:
    input (Tensor[N, C, D, H, W]): The input tensor or 5-dimensions with the first one
                being its batch i.e. a batch with ``N`` rows.
    p (float): Probability of an element to be dropped.
    block_size (int): Size of the block to drop.
    inplace (bool): If set to ``True``, will do this operation in-place. Default: ``False``.
    eps (float): A value added to the denominator for numerical stability. Default: 1e-6.
    training (bool): apply dropblock if is ``True``. Default: ``True``.

Returns:
    Tensor[N, C, D, H, W]: The randomly zeroed tensor after dropblock.
r   r   r   r   z#input should be 5 dimensional. Got r   r   r   r    r#   r%   )r)   r)   r)   )r*   r+   r,   r-   r   Údrop_block3dr/   r0   r1   r2   r3   r!   r"   r4   r5   r6   Ú
max_pool3dr8   r9   r:   )r	   r
   r   r   r   r   r;   r<   ÚDr=   r>   r?   r@   rA   s   &&&&&&        r   rD   rD   :   sï  € ô& �9‰9×!Ñ!×#Ò#¬E¯I©I×,@Ñ,@×,BÒ,BÜœLÔ)Øˆ3„w�!�c”'ÜÐOÐPQÈsÐRSÐTÓUÐUØ‡z�z�Q„ÜÐ>¸u¿z¹z¸lÈ,ÐWÓXÐXß�q˜C”xØˆà—J‘J“L�M€Aˆ!�Ü�Z AÓ)€JØ�A…~˜ÔÜÐ9¸*¸À_ÐUÓVÐVð �U�Q�Y˜�] 
¨A¥°1µ>ÀAÕ3EÈ!Í.Ð[\ÕJ\Õ2]ÐabÕaoÐrsÕasÕ2tÕuÕv€EÜ�KŠKØ	
ˆq�~ Õ! 1¥>°AÕ#5°qµ~ÈÕ7IÐJÐRW×R]ÑR]Ðfk×frÑfrô€Eð 
×Ñ�UÔä�EŠE�%¨�/Ð*¨QÕ.°aÔ8€EÜ�LŠLØ�i¨jÀjÐ-QÐ[eÐijÕ[jô€Eð ��I€EØ—k‘k“m s¯Y©Y«[Õ'8Õ9€OßØ�
‰
�5Ó×Ñ˜Ô/ð €Lð • Õ/ˆØ€Lr   r.   c                   ój   a a€ ] tR t^rt 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
# )
ÚDropBlock2dz
See :func:`drop_block2d`.
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   )r   Ú__classdict__s   "€r   r   ÚDropBlock2d.__annotate__w   s1   ø€ ÷ ñ ™%ð ©Sð ¹4ð Éeð Ð`dñ r   c                óT   <€ \         SV `  4        Wn        W n        W0n        W@n        R # ©N)ÚsuperÚ__init__r
   r   r   r   ©Úselfr
   r   r   r   Ú	__class__s   &&&&&€r   rQ   ÚDropBlock2d.__init__w   s"   ø€ Ü‰ÑÔàŒØ$ŒØŒØŽr   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r   r	   r   ©r   )r   rL   s   "€r   r   rM      ó   ø€ ÷ cñ c™Vð c©ñ cr   c                ó„   € \        WP                  V P                  V P                  V P                  V P
                  4      # ©zš
Args:
    input (Tensor): Input feature map on which some areas will be randomly
        dropped.
Returns:
    Tensor: The tensor after DropBlock layer.
)r.   r
   r   r   r   r   ©rS   r	   s   &&r   ÚforwardÚDropBlock2d.forward   ó.   € ô ˜E§6¡6¨4¯?©?¸D¿L¹LÈ$Ï(É(ÐTX×TaÑTaÓbÐbr   c                ó    <€ V ^8„  d   QhRS[ /# )r   r   )Ústr)r   rL   s   "€r   r   rM   ‰   s   ø€ ÷ ñ ™#ñ r   c                ó†   € V P                   P                   R V P                   RV P                   RV P                   R2pV# )z(p=z, block_size=z
, inplace=Ú))rT   Ú__name__r
   r   r   )rS   Úss   & r   Ú__repr__ÚDropBlock2d.__repr__‰   sC   € Ø�~‰~×&Ñ&Ð' s¨4¯6©6¨(°-ÀÇÁÐ?PÐPZÐ[_×[gÑ[gÐZhÐhiÐjˆØˆr   )r   r   r   r
   ©Fç�íµ ÷Æ°>)rd   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rQ   r]   rf   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rT   rL   s   @@r   rH   rH   r   s/   ù‡ € ñ÷õ ÷cð c÷÷ ð r   rH   rD   c                   ó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	# )ÚDropBlock3dz
See :func:`drop_block3d`.
c          
      ó6   <€ V ^8„  d   QhRS[ RS[RS[RS[ RR/# rJ   rK   )r   rL   s   "€r   r   ÚDropBlock3d.__annotate__–   s1   ø€ ÷ 6ñ 6™%ð 6©Sð 6¹4ð 6Éeð 6Ð`dñ 6r   c                ó(   <€ \         SV `  WW44       R # rO   )rP   rQ   rR   s   &&&&&€r   rQ   ÚDropBlock3d.__init__–   s   ø€ Ü‰Ñ˜¨Ö5r   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# rW   rX   )r   rL   s   "€r   r   ru   ™   rY   r   c                ó„   € \        WP                  V P                  V P                  V P                  V P
                  4      # r[   )rD   r
   r   r   r   r   r\   s   &&r   r]   ÚDropBlock3d.forward™   r_   r   © rh   )
rd   rj   rk   rl   rm   rQ   r]   rn   ro   rp   rq   s   @@r   rs   rs   ‘   s&   ù‡ € ñ÷6õ 6÷c÷ cð cr   rs   )Fri   T)r*   Útorch.fxÚtorch.nn.functionalr   Ú
functionalr5   r   Úutilsr   r.   rD   ÚfxÚwrapÚModulerH   rs   r{   r   r   Ú<module>rƒ      se   ðÛ Û ß Ð ß å '÷.÷b2ðj ‡�‡�ˆnÔ ô�"—)‘)ô ð8 ‡�‡�ˆnÔ ôc�+ö cr   