ó
    Eñi;"  ã                   ó  • S SK Jr  S SKJrJr  S SKrS SKJr  S SKJs  J	r	  SSK
Jr  SSKJr  SSKJrJrJr  SS	KJr  SS
KJrJr  / SQr " S S\R0                  5      r " S S\R0                  5      rS\S\\   S\S\S\4
S jr\SSS.r " S S\5      r " S S\5      r \" 5       \" S\RB                  4S9SSS .S\\   S\S\S\4S! jj5       5       r"\" 5       \" S\ RB                  4S9SSS .S\\    S\S\S\4S" jj5       5       r#g)#é    )Úpartial)ÚAnyÚOptionalNé   )ÚImageClassification)Ú_log_api_usage_onceé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_ovewrite_named_paramÚhandle_legacy_interface)Ú
SqueezeNetÚSqueezeNet1_0_WeightsÚSqueezeNet1_1_WeightsÚsqueezenet1_0Úsqueezenet1_1c            
       óz   ^ • \ rS rSrS\S\S\S\SS4
U 4S jjrS	\R                  S\R                  4S
 jrSr	U =r
$ )ÚFireé   ÚinplanesÚsqueeze_planesÚexpand1x1_planesÚexpand3x3_planesÚreturnNc                 ób  >• [         TU ]  5         Xl        [        R                  " XSS9U l        [        R                  " SS9U l        [        R                  " X#SS9U l        [        R                  " SS9U l	        [        R                  " X$SSS9U l
        [        R                  " SS9U l        g )Nr	   ©Úkernel_sizeT©Úinplaceé   )r   Úpadding)ÚsuperÚ__init__r   ÚnnÚConv2dÚsqueezeÚReLUÚsqueeze_activationÚ	expand1x1Úexpand1x1_activationÚ	expand3x3Úexpand3x3_activation)Úselfr   r   r   r   Ú	__class__s        €ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torchvision/models/squeezenet.pyr%   ÚFire.__init__   s�   ø€ Ü‰ÑÔØ ŒÜ—y’y ÀqÑIˆŒÜ"$§'¢'°$Ñ"7ˆÔÜŸš >ÐQRÑSˆŒÜ$&§G¢G°DÑ$9ˆÔ!ÜŸš >ÐQRÐ\]Ñ^ˆŒÜ$&§G¢G°DÑ$9ˆÕ!ó    Úxc                 óì   • U R                  U R                  U5      5      n[        R                  " U R	                  U R                  U5      5      U R                  U R                  U5      5      /S5      $ ©Nr	   )r*   r(   ÚtorchÚcatr,   r+   r.   r-   ©r/   r4   s     r1   ÚforwardÚFire.forward   sb   € Ø×#Ñ# D§L¡L°£OÓ4ˆÜ�yŠyØ×&Ñ& t§~¡~°aÓ'8Ó9¸4×;TÑ;TÐUY×UcÑUcÐdeÓUfÓ;gÐhÐjkó
ð 	
r3   )r+   r,   r-   r.   r   r(   r*   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úintr%   r7   ÚTensorr:   Ú__static_attributes__Ú__classcell__©r0   s   @r1   r   r      sM   ø† ð: ð :°cð :ÈSð :Ðdgð :Ðlp÷ :ð
˜Ÿ™ð 
¨%¯,©,÷ 
ò 
r3   r   c            	       óz   ^ • \ rS rSrSS\S\S\SS4U 4S jjjrS\R                  S\R                  4S	 jr
S
rU =r$ )r   é$   ÚversionÚnum_classesÚdropoutr   Nc                 ón  >• [         TU ]  5         [        U 5        X l        US:X  aì  [        R
                  " [        R                  " SSSSS9[        R                  " SS9[        R                  " SSSS	9[        SS
SS5      [        SS
SS5      [        SSSS5      [        R                  " SSSS	9[        SSSS5      [        SSSS5      [        SSSS5      [        SSSS5      [        R                  " SSSS	9[        SSSS5      5      U l
        GO US:X  aë  [        R
                  " [        R                  " SSSSS9[        R                  " SS9[        R                  " SSSS	9[        SS
SS5      [        SS
SS5      [        R                  " SSSS	9[        SSSS5      [        SSSS5      [        R                  " SSSS	9[        SSSS5      [        SSSS5      [        SSSS5      [        SSSS5      5      U l
        O[        SU S35      e[        R                  " SU R                  SS9n[        R
                  " [        R                  " US9U[        R                  " SS9[        R                  " S5      5      U l        U R                  5        H™  n[!        U[        R                  5      (       d  M$  XTL a!  ["        R$                  " UR&                  SSS9  O ["        R(                  " UR&                  5        UR*                  c  Mx  ["        R,                  " UR*                  S5        M›     g )NÚ1_0r"   é`   é   r   )r   ÚstrideTr    )r   rN   Ú	ceil_modeé   é@   é€   é    é   é0   éÀ   i€  i   Ú1_1zUnsupported SqueezeNet version z: 1_0 or 1_1 expectedr	   r   )Úp)r	   r	   g        g{®Gáz„?)ÚmeanÚstdr   )r$   r%   r   rH   r&   Ú
Sequentialr'   r)   Ú	MaxPool2dr   ÚfeaturesÚ
ValueErrorÚDropoutÚAdaptiveAvgPool2dÚ
classifierÚmodulesÚ
isinstanceÚinitÚnormal_ÚweightÚkaiming_uniform_ÚbiasÚ	constant_)r/   rG   rH   rI   Ú
final_convÚmr0   s         €r1   r%   ÚSqueezeNet.__init__%   s�  ø€ Ü‰ÑÔÜ˜DÔ!Ø&ÔØ�eÓÜŸMšMÜ—	’	˜!˜R¨Q°qÑ9Ü—’ Ñ%Ü—’¨°1ÀÑEÜ�R˜˜R Ó$Ü�S˜"˜b "Ó%Ü�S˜"˜c 3Ó'Ü—’¨°1ÀÑEÜ�S˜"˜c 3Ó'Ü�S˜"˜c 3Ó'Ü�S˜"˜c 3Ó'Ü�S˜"˜c 3Ó'Ü—’¨°1ÀÑEÜ�S˜"˜c 3Ó'óˆDŽMð ˜ÓÜŸMšMÜ—	’	˜!˜R¨Q°qÑ9Ü—’ Ñ%Ü—’¨°1ÀÑEÜ�R˜˜R Ó$Ü�S˜"˜b "Ó%Ü—’¨°1ÀÑEÜ�S˜"˜c 3Ó'Ü�S˜"˜c 3Ó'Ü—’¨°1ÀÑEÜ�S˜"˜c 3Ó'Ü�S˜"˜c 3Ó'Ü�S˜"˜c 3Ó'Ü�S˜"˜c 3Ó'óˆD�Mô& Ð>¸w¸iÐG\Ð]Ó^Ð^ô —Y’Y˜s D×$4Ñ$4À!ÑDˆ
ÜŸ-š-Ü�JŠJ˜Ñ! :¬r¯wªw¸tÑ/DÄb×FZÒFZÐ[aÓFbó
ˆŒð —‘–ˆAÜ˜!œRŸY™Y×'Ó'Ø’?Ü—L’L §¡°¸Ó>ä×)Ò)¨!¯(©(Ô3Ø—6‘6Ó%Ü—N’N 1§6¡6¨1Ö-ò  r3   r4   c                 ót   • U R                  U5      nU R                  U5      n[        R                  " US5      $ r6   )r]   ra   r7   Úflattenr9   s     r1   r:   ÚSqueezeNet.forward^   s/   € Ø�M‰M˜!ÓˆØ�O‰O˜AÓˆÜ�}Š}˜Q Ó"Ð"r3   )ra   r]   rH   )rK   iè  g      à?)r<   r=   r>   r?   Ústrr@   Úfloatr%   r7   rA   r:   rB   rC   rD   s   @r1   r   r   $   sK   ø† ñ7. ð 7.¸#ð 7.Èuð 7.Ð_c÷ 7.ð 7.ðr#˜Ÿ™ð #¨%¯,©,÷ #ò #r3   r   rG   ÚweightsÚprogressÚkwargsr   c                 ó®   • Ub#  [        US[        UR                  S   5      5        [        U 40 UD6nUb  UR	                  UR                  USS95        U$ )NrH   Ú
categoriesT)rs   Ú
check_hash)r   ÚlenÚmetar   Úload_state_dictÚget_state_dict)rG   rr   rs   rt   Úmodels        r1   Ú_squeezenetr}   d   s]   € ð ÑÜ˜f m´S¸¿¹ÀlÑ9SÓ5TÔUä�wÑ) &Ñ)€EàÑØ×Ñ˜g×4Ñ4¸hÐSWÐ4ÐXÔYà€Lr3   z@https://github.com/pytorch/vision/pull/49#issuecomment-277560717zXThese weights reproduce closely the results of the paper using a simple training recipe.)rv   ÚrecipeÚ_docsc                   óP   • \ rS rSr\" S\" \SS90 \ESSSSS	S
.0SSS.ES9r\r	Sr
g)r   é|   z>https://download.pytorch.org/models/squeezenet1_0-b66bff10.pthéà   ©Ú	crop_size)é   r…   i¨ úImageNet-1Kg²�ï§ÆM@g{®GáT@©zacc@1zacc@5gh‘í|?5ê?gé&1¬@©Úmin_sizeÚ
num_paramsÚ_metricsÚ_opsÚ
_file_size©ÚurlÚ
transformsry   © N©r<   r=   r>   r?   r   r   r   Ú_COMMON_METAÚIMAGENET1K_V1ÚDEFAULTrB   r‘   r3   r1   r   r   |   óT   † ÙØLÙÐ.¸#Ñ>ð
Øð
à Ø!àØ#Ø#ñ ðð Øò
ñ€Mð" ƒGr3   r   c                   óP   • \ rS rSr\" S\" \SS90 \ESSSSS	S
.0SSS.ES9r\r	Sr
g)r   é‘   z>https://download.pytorch.org/models/squeezenet1_1-b8a52dc0.pthr‚   rƒ   )é   r™   i(Ú r†   gX9´ÈM@g-²�ï'T@r‡   g¼t“VÖ?gÑ"Ûù~ê@rˆ   rŽ   r‘   Nr’   r‘   r3   r1   r   r   ‘   r–   r3   r   Ú
pretrained)rr   T)rr   rs   c                 óF   • [         R                  U 5      n [        SX40 UD6$ )a’  SqueezeNet model architecture from the `SqueezeNet: AlexNet-level
accuracy with 50x fewer parameters and <0.5MB model size
<https://arxiv.org/abs/1602.07360>`_ paper.

Args:
    weights (:class:`~torchvision.models.SqueezeNet1_0_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.SqueezeNet1_0_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.squeezenet.SqueezeNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/squeezenet.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.SqueezeNet1_0_Weights
    :members:
rK   )r   Úverifyr}   ©rr   rs   rt   s      r1   r   r   ¦   s&   € ô2 $×*Ñ*¨7Ó3€GÜ�u˜gÑ:°6Ñ:Ð:r3   c                 óF   • [         R                  U 5      n [        SX40 UD6$ )aç  SqueezeNet 1.1 model from the `official SqueezeNet repo
<https://github.com/DeepScale/SqueezeNet/tree/master/SqueezeNet_v1.1>`_.

SqueezeNet 1.1 has 2.4x less computation and slightly fewer parameters
than SqueezeNet 1.0, without sacrificing accuracy.

Args:
    weights (:class:`~torchvision.models.SqueezeNet1_1_Weights`, optional): The
        pretrained weights to use. See
        :class:`~torchvision.models.SqueezeNet1_1_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.squeezenet.SqueezeNet``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/squeezenet.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.SqueezeNet1_1_Weights
    :members:
rW   )r   rœ   r}   r�   s      r1   r   r   Ã   s&   € ô6 $×*Ñ*¨7Ó3€GÜ�u˜gÑ:°6Ñ:Ð:r3   )$Ú	functoolsr   Útypingr   r   r7   Útorch.nnr&   Útorch.nn.initrd   Útransforms._presetsr   Úutilsr   Ú_apir
   r   r   Ú_metar   Ú_utilsr   r   Ú__all__ÚModuler   r   rp   Úboolr}   r“   r   r   r”   r   r   r‘   r3   r1   Ú<module>r«      sl  ðÝ ß  ã Ý ß Ð å 5Ý 'ß 6Ñ 6Ý 'ß Bò m€ô
ˆ2�9‰9ô 
ô$=#�—‘ô =#ð@Øðà�kÑ"ðð ðð ð	ð
 ôð$ 'ØPØkñ€ô˜Kô ô*˜Kô ñ* ÓÙ ,Ð0E×0SÑ0SÐ!TÑUà26Èò;ØÐ.Ñ/ð;ØBFð;ØY\ð;àô;ó Vó ð;ñ6 ÓÙ ,Ð0E×0SÑ0SÐ!TÑUà26Èò;ØÐ.Ñ/ð;ØBFð;ØY\ð;àô;ó Vó ñ;r3   