ó
    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	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\R,                  5      r " S S\5      r\" 5       \" S\R2                  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)ÚAlexNetÚAlexNet_WeightsÚalexnetc                   óv   ^ • \ rS rSr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   é   Únum_classesÚdropoutÚreturnNc                 ó  >• [         TU ]  5         [        U 5        [        R                  " [        R
                  " SSSSSS9[        R                  " SS9[        R                  " SSS	9[        R
                  " SS
SSS9[        R                  " SS9[        R                  " SSS	9[        R
                  " S
SSSS9[        R                  " SS9[        R
                  " SSSSS9[        R                  " SS9[        R
                  " SSSSS9[        R                  " SS9[        R                  " SSS	95      U l        [        R                  " S5      U l
        [        R                  " [        R                  " US9[        R                  " SS5      [        R                  " SS9[        R                  " US9[        R                  " SS5      [        R                  " SS9[        R                  " SU5      5      U l        g )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      €ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torchvision/models/alexnet.pyr'   Ú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                 óš   • U R                  U5      nU R                  U5      n[        R                  " US5      nU R	                  U5      nU$ )Nr	   )r-   r/   ÚtorchÚflattenr2   )r3   r8   s     r5   ÚforwardÚAlexNet.forward/   s@   € Ø�M‰M˜!ÓˆØ�L‰L˜‹OˆÜ�MŠM˜!˜QÓˆØ�O‰O˜AÓˆØˆr7   )r/   r2   r-   )iè  g      à?)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚintÚfloatr'   r:   ÚTensorr<   Ú__static_attributes__Ú__classcell__)r4   s   @r5   r   r      sB   ø† ñ
 Cð 
¸ð 
È÷ 
ð 
ð:˜Ÿ™ð ¨%¯,©,÷ ò r7   r   c                   óN   • \ rS rSr\" S\" \SS9SS\SSS	S
S.0SSSS.S9r\r	Sr
g)r   é7   z<https://download.pytorch.org/models/alexnet-owt-7be5be79.pthéà   )Ú	crop_sizei(S¤)é?   rK   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Úmeta© N)r>   r?   r@   rA   r   r   r   r   ÚIMAGENET1K_V1ÚDEFAULTrE   rW   r7   r5   r   r   7   sR   † ÙØJÙÐ.¸#Ñ>à"Ø Ø.ØmàØ#Ø#ñ ðð Ø!ðñ
ñ€Mð* ƒGr7   r   Ú
pretrained)ÚweightsT)r[   Úprogressr[   r\   Úkwargsr   c                 óÖ   • [         R                  U 5      n U b#  [        US[        U R                  S   5      5        [        S0 UD6nU b  UR                  U R                  USS95        U$ )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   rN   T)r\   Ú
check_hashrW   )r   Úverifyr   ÚlenrV   r   Úload_state_dictÚget_state_dict)r[   r\   r]   Úmodels       r5   r   r   P   sk   € ô: ×$Ñ$ WÓ-€GàÑÜ˜f m´S¸¿¹ÀlÑ9SÓ5TÔUäÑ�fÑ€EàÑØ×Ñ˜g×4Ñ4¸hÐSWÐ4ÐXÔYà€Lr7   )Ú	functoolsr   Útypingr   r   r:   Útorch.nnr(   Útransforms._presetsr   Úutilsr   Ú_apir
   r   r   Ú_metar   Ú_utilsr   r   Ú__all__ÚModuler   r   rX   Úboolr   rW   r7   r5   Ú<module>rp      sŸ   ðÝ ß  ã Ý å 5Ý 'ß 6Ñ 6Ý 'ß Bò 4€ô#ˆb�i‰iô #ôL�kô ñ2 ÓÙ ,°×0MÑ0MÐ!NÑOØ48È4ò %˜ Ñ1ð %ÀDð %Ð[^ð %Ðcjô %ó Pó ñ%r7   