Ë
    þÍ:jˆ  ã                   ó.  — d dl mZ d dlmZmZ d dlZd dlmZ ddlm	Z	 ddl
mZ ddlmZmZmZ dd	lmZ dd
lmZmZ g d¢Z G d„ dej,                  «      Z G d„ de«      Z e«        edej2                  f¬«      dddœdee   dededefd„«       «       Zy)é    )Úpartial)ÚAnyÚOptionalNé   )ÚImageClassification)Ú_log_api_usage_onceé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_ovewrite_named_paramÚhandle_legacy_interface)ÚAlexNetÚAlexNet_WeightsÚalexnetc                   óf   ‡ — e Zd Zddededdfˆ fd„Zdej                  dej                  fd„Zˆ xZ	S )	r   Únum_classesÚdropoutÚreturnNc                 ó>  •— t         ‰| �  «        t        | «       t        j                  t        j
                  ddddd¬«      t        j                  d¬«      t        j                  dd¬	«      t        j
                  dd
dd¬«      t        j                  d¬«      t        j                  dd¬	«      t        j
                  d
ddd¬«      t        j                  d¬«      t        j
                  dddd¬«      t        j                  d¬«      t        j
                  dddd¬«      t        j                  d¬«      t        j                  dd¬	«      «      | _        t        j                  d«      | _
        t        j                  t        j                  |¬«      t        j                  dd«      t        j                  d¬«      t        j                  |¬«      t        j                  dd«      t        j                  d¬«      t        j                  d|«      «      | _        y )Né   é@   é   é   r   )Úkernel_sizeÚstrideÚpaddingT)Úinplace)r   r   éÀ   é   )r   r   i€  r	   é   )é   r#   )Úpi $  i   )ÚsuperÚ__init__r   ÚnnÚ
SequentialÚConv2dÚReLUÚ	MaxPool2dÚfeaturesÚAdaptiveAvgPool2dÚavgpoolÚDropoutÚLinearÚ
classifier)Úselfr   r   Ú	__class__s      €úo/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/torchvision/models/alexnet.pyr&   zAlexNet.__init__   sf  ø€ Ü‰ÑÔÜ˜DÔ!ÜŸ™Ü�I‰I�a˜¨°A¸qÔAÜ�G‰G˜DÔ!Ü�L‰L Q¨qÔ1Ü�I‰I�b˜#¨1°aÔ8Ü�G‰G˜DÔ!Ü�L‰L Q¨qÔ1Ü�I‰I�c˜3¨A°qÔ9Ü�G‰G˜DÔ!Ü�I‰I�c˜3¨A°qÔ9Ü�G‰G˜DÔ!Ü�I‰I�c˜3¨A°qÔ9Ü�G‰G˜DÔ!Ü�L‰L Q¨qÔ1ó
ˆŒô ×+Ñ+¨FÓ3ˆŒÜŸ-™-Ü�J‰J˜Ô!Ü�I‰I�k 4Ó(Ü�G‰G˜DÔ!Ü�J‰J˜Ô!Ü�I‰I�d˜DÓ!Ü�G‰G˜DÔ!Ü�I‰I�d˜KÓ(ó
ˆ�ó    Úxc                 ó˜   — | j                  |«      }| j                  |«      }t        j                  |d«      }| j	                  |«      }|S )Nr	   )r,   r.   ÚtorchÚflattenr1   )r2   r6   s     r4   ÚforwardzAlexNet.forward/   s@   € Ø�M‰M˜!ÓˆØ�L‰L˜‹OˆÜ�M‰M˜!˜QÓˆØ�O‰O˜AÓˆØˆr5   )iè  g      à?)
Ú__name__Ú
__module__Ú__qualname__ÚintÚfloatr&   r8   ÚTensorr:   Ú__classcell__)r3   s   @r4   r   r      s8   ø„ ñ
 Cð 
¸ð 
Èõ 
ð:˜Ÿ™ð ¨%¯,©,÷ r5   r   c                   óR   — e Zd Z ed eed¬«      ddedddd	d
œiddddœ¬«      ZeZy)r   z<https://download.pytorch.org/models/alexnet-owt-7be5be79.pthéà   )Ú	crop_sizei(S¤)é?   rE   zUhttps://github.com/pytorch/vision/tree/main/references/classification#alexnet-and-vggzImageNet-1Kg‰A`åÐBL@gNbX9ÄS@)zacc@1zacc@5g+‡Ùæ?gX9´È"m@zz
                These weights reproduce closely the results of the paper using a simplified training recipe.
            )Ú
num_paramsÚmin_sizeÚ
categoriesÚrecipeÚ_metricsÚ_opsÚ
_file_sizeÚ_docs)ÚurlÚ
transformsÚmetaN)	r;   r<   r=   r   r   r   r   ÚIMAGENET1K_V1ÚDEFAULT© r5   r4   r   r   7   sR   „ ÙØJÙÐ.¸#Ô>à"Ø Ø.ØmàØ#Ø#ñ ðð Ø!ðñ
ô€Mð* �Gr5   r   Ú
pretrained)ÚweightsT)rU   ÚprogressrU   rV   Úkwargsr   c                 óØ   — t         j                  | «      } | �#t        |dt        | j                  d   «      «       t        di |¤Ž}| �"|j                  | j                  |d¬«      «       |S )aã  AlexNet model architecture from `One weird trick for parallelizing convolutional neural networks <https://arxiv.org/abs/1404.5997>`__.

    .. note::
        AlexNet was originally introduced in the `ImageNet Classification with
        Deep Convolutional Neural Networks
        <https://papers.nips.cc/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html>`__
        paper. Our implementation is based instead on the "One weird trick"
        paper above.

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

    .. autoclass:: torchvision.models.AlexNet_Weights
        :members:
    r   rH   T)rV   Ú
check_hashrS   )r   Úverifyr   ÚlenrP   r   Úload_state_dictÚget_state_dict)rU   rV   rW   Úmodels       r4   r   r   P   sk   € ô: ×$Ñ$ WÓ-€GàÐÜ˜f m´S¸¿¹ÀlÑ9SÓ5TÔUäÑ�fÑ€EàÐØ×Ñ˜g×4Ñ4¸hÐSWÐ4ÓXÔYà€Lr5   )Ú	functoolsr   Útypingr   r   r8   Útorch.nnr'   Útransforms._presetsr   Úutilsr   Ú_apir
   r   r   Ú_metar   Ú_utilsr   r   Ú__all__ÚModuler   r   rQ   Úboolr   rS   r5   r4   ú<module>rj      sŸ   ðÝ ß  ã Ý å 5Ý 'ß 6Ñ 6Ý 'ß Bò 4€ô#ˆb�i‰iô #ôL�kô ñ2 ÓÙ ,°×0MÑ0MÐ!NÔOØ48È4ò %˜ Ñ1ð %ÀDð %Ð[^ð %Ðcjò %ó Pó ñ%r5   