
    h                     ,   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      R/var/www/auris/envauris/lib/python3.13/site-packages/torchvision/models/alexnet.pyr'   AlexNet.__init__   sf   D!IIaAqAGGD!LLQq1IIb#1a8GGD!LLQq1IIc3Aq9GGD!IIc3Aq9GGD!IIc3Aq9GGD!LLQq1
 ++F3--JJ!IIk4(GGD!JJ!IIdD!GGD!IIdK(
    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@    MM!LLOMM!QOOA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-1KgA`BL@gNbX9S@)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fmSl9S5TUfEg44hSW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#bii #Lk 2 ,0M0M!NO484 %1 %D %[^ %cj % P %r7   