
    hI                        S SK r S SKJr  S SKJr  S SKJrJrJr  S SK	r	S SK
Js  Jr  S SK	Jr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S/5      r\\\   S.\l        \r " S S\R@                  5      r! " S S\R@                  5      r" " S S\R@                  5      r# " S S\R@                  5      r$ " S S\R@                  5      r% " S S\R@                  5      r& " S S\R@                  5      r' " S  S!\R@                  5      r( " S" S#\5      r)\" 5       \" S$\)RT                  4S%9SS&S'.S(\\)   S)\+S*\S+\!4S, jj5       5       r,g)-    N)
namedtuple)partial)AnyCallableOptional)nnTensor   )ImageClassification)_log_api_usage_once   )register_modelWeightsWeightsEnum)_IMAGENET_CATEGORIES)_ovewrite_named_paramhandle_legacy_interface)
Inception3InceptionOutputs_InceptionOutputsInception_V3_Weightsinception_v3r   logits
aux_logits)r   r   c                     ^  \ rS rSr      SS\S\S\S\\\S\	R                  4         S\\   S	\S
S4U 4S jjjrS\S
\4S jrS\S
\\\\   4   4S jr\R$                  R&                  S\S\\   S
\4S j5       rS\S
\4S jrSrU =r$ )r      Nnum_classesr   transform_inputinception_blocks.init_weightsdropoutreturnc           	        > [         TU ]  5         [        U 5        Uc%  [        [        [
        [        [        [        [        /nUc  [        R                  " S[        5        Sn[        U5      S:w  a  [        S[        U5       35      eUS   nUS   nUS   n	US   n
US	   nUS
   nUS   nX l        X0l        U" SSSSS9U l        U" SSSS9U l        U" SSSSS9U l        [(        R*                  " SSS9U l        U" SSSS9U l        U" SSSS9U l        [(        R*                  " SSS9U l        U" SSS9U l        U" SSS9U l        U" SSS9U l        U	" S5      U l        U
" SSS9U l        U
" SSS9U l        U
" SSS9U l         U
" SSS9U l!        S U l"        U(       a  U" SU5      U l"        U" S5      U l#        U" S5      U l$        U" S5      U l%        [(        RL                  " S5      U l'        [(        RP                  " US9U l)        [(        RT                  " SU5      U l+        U(       Ga,  U RY                  5        GH  n[[        U[(        R\                  5      (       d  [[        U[(        RT                  5      (       a_  [_        US5      (       a  [a        URb                  5      OSn[d        R(                  Rf                  Ri                  URj                  S US!SS"9  M  [[        U[(        Rl                  5      (       d  M  [(        Rf                  Ro                  URj                  S5        [(        Rf                  Ro                  URp                  S5        GM     g g )#NzThe default weight initialization of inception_v3 will be changed in future releases of torchvision. If you wish to keep the old behavior (which leads to long initialization times due to scipy/scipy#11299), please set init_weights=True.T   z2length of inception_blocks should be 7 instead of r   r   r
                   kernel_sizestrider+   @   r+   paddingP      )pool_features   i         )channels_7x7   i   i   r   r   )pstddevg?g        )meanstdab)9super__init__r   BasicConv2d
InceptionA
InceptionB
InceptionC
InceptionD
InceptionEInceptionAuxwarningswarnFutureWarninglen
ValueErrorr   r   Conv2d_1a_3x3Conv2d_2a_3x3Conv2d_2b_3x3r   	MaxPool2dmaxpool1Conv2d_3b_1x1Conv2d_4a_3x3maxpool2Mixed_5bMixed_5cMixed_5dMixed_6aMixed_6bMixed_6cMixed_6dMixed_6e	AuxLogitsMixed_7aMixed_7bMixed_7cAdaptiveAvgPool2davgpoolDropoutr!   Linearfcmodules
isinstanceConv2dhasattrfloatr;   torchinittrunc_normal_weightBatchNorm2d	constant_bias)selfr   r   r   r   r    r!   
conv_blockinception_ainception_binception_cinception_dinception_einception_auxmr;   	__class__s                   T/var/www/auris/envauris/lib/python3.13/site-packages/torchvision/models/inception.pyrB   Inception3.__init__   s    	D!# +ZZQ[]giuvMML 	  L A%QRUVfRgQhijj%a(
&q)&q)&q)&q)&q)(+$.'21QG'BA>'BAqI1='BA>'CQ?1=#Cr:#Cr:#Cr:#C(#Cc:#Cc:#Cc:#Cc:.2*3<DN#C(#D)#D)++F3zzG,))D+.\\^a++z!RYY/G/G0780D0DU188_#FHHMM//sRTXY/Z2>>22GG%%ahh2GG%%affa0 $     xc                 2   U R                   (       a  [        R                  " US S 2S4   S5      S-  S-   n[        R                  " US S 2S4   S5      S-  S-   n[        R                  " US S 2S4   S5      S-  S	-   n[        R                  " X#U4S5      nU$ )
Nr   r   gZd;O?gQgy&1?gI+r
   g?gMbȿ)r   rm   	unsqueezecat)rt   r   x_ch0x_ch1x_ch2s        r~   _transform_inputInception3._transform_input_   s    OOAadGQ/;?BUUEOOAadGQ/;?BUUEOOAadGQ/;?BUUE		5/3Ar   c                 b   U R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R	                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nS nU R                  b"  U R                   (       a  U R                  U5      nU R#                  U5      nU R%                  U5      nU R'                  U5      nU R)                  U5      nU R+                  U5      n[,        R.                  " US5      nU R1                  U5      nX4$ Nr   )rO   rP   rQ   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   trainingr`   ra   rb   rd   r!   rm   flattenrg   rt   r   auxs      r~   _forwardInception3._forwardg   sl   q!q!q!MM!q!q!MM!MM!MM!MM!MM!MM!MM!MM!MM! $>>%}}nnQ'MM!MM!MM! LLOLLOMM!QGGAJvr   r   c                 `    U R                   (       a  U R                  (       a  [        X5      $ U$ N)r   r   r   r   s      r~   eager_outputsInception3.eager_outputs   s    ==T__#A++Hr   c                 @   U R                  U5      nU R                  U5      u  pU R                  =(       a    U R                  n[        R
                  R                  5       (       a(  U(       d  [        R                  " S5        [        X5      $ U R                  X5      $ )Nz3Scripted Inception3 always returns Inception3 Tuple)r   r   r   r   rm   jitis_scriptingrJ   rK   r   r   )rt   r   r   aux_defineds       r~   forwardInception3.forward   ss    !!!$q!mm799!!##ST#A++%%a--r   )r_   rO   rP   rQ   rT   rU   rW   rX   rY   rZ   r[   r\   r]   r^   r`   ra   rb   r   rd   r!   rg   rS   rV   r   )i  TFNNg      ?)__name__
__module____qualname____firstlineno__intboolr   listr   r   Modulerl   rB   r	   r   tupler   rm   r   unusedr   r   r   __static_attributes____classcell__r}   s   @r~   r   r      s      %EI'+@1@1 @1 	@1
 #4bii(@#AB@1 tn@1 @1 
@1 @1D& V 4& 4U68F3C+C%D 4l YYv HV,< AQ  	. 	.$4 	. 	.r   r   c            
          ^  \ rS rSr SS\S\S\\S\R                  4      SS4U 4S jjjr	S	\
S\\
   4S
 jrS	\
S\
4S jrSrU =r$ )rD      Nin_channelsr3   ru   .r"   c                    > [         TU ]  5         Uc  [        nU" USSS9U l        U" USSS9U l        U" SSSSS9U l        U" USSS9U l        U" SSS	SS9U l        U" SSS	SS9U l        U" XSS9U l	        g )
Nr.   r   r-   0   r'   r
   r/   `   r%   )
rA   rB   rC   	branch1x1branch5x5_1branch5x5_2branch3x3dbl_1branch3x3dbl_2branch3x3dbl_3branch_pool)rt   r   r3   ru   r}   s       r~   rB   InceptionA.__init__   s     	$J#KC%k21E%b"!QG(baH(RQJ(RQJ%kaPr   r   c                 *   U R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R	                  U5      nU R                  U5      n[        R                  " USSSS9nU R                  U5      nX#XE/nU$ Nr%   r   r+   r,   r0   )	r   r   r   r   r   r   F
avg_pool2dr   )rt   r   r   	branch5x5branch3x3dblr   outputss          r~   r   InceptionA._forward   s    NN1%	$$Q'	$$Y/	**1-**<8**<8ll1!AqI&&{3Cr   c                 R    U R                  U5      n[        R                  " US5      $ r   r   rm   r   rt   r   r   s      r~   r   InceptionA.forward   !    --"yy!$$r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   r	   r   r   r   r   r   r   s   @r~   rD   rD      s|    eiQQ/2Q@HRUWYW`W`R`Ia@bQ	Q Q"& T&\  % %F % %r   rD   c                      ^  \ rS rSrSS\S\\S\R                  4      SS4U 4S jjjr	S\
S\\
   4S	 jrS\
S\
4S
 jrSrU =r$ )rE      Nr   ru   .r"   c                    > [         TU ]  5         Uc  [        nU" USSSS9U l        U" USSS9U l        U" SSSSS	9U l        U" SSSSS9U l        g )
N  r%   r
   r*   r.   r   r-   r   r/   )rA   rB   rC   	branch3x3r   r   r   rt   r   ru   r}   s      r~   rB   InceptionB.__init__   sb    $J#K!AN(baH(RQJ(RQqIr   r   c                     U R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      n[        R
                  " USSS9nX#U/nU$ Nr%   r
   r*   )r   r   r   r   r   
max_pool2d)rt   r   r   r   r   r   s         r~   r   InceptionB._forward   sa    NN1%	**1-**<8**<8ll1!A>K8r   c                 R    U R                  U5      n[        R                  " US5      $ r   r   r   s      r~   r   InceptionB.forward   r   r   )r   r   r   r   r   r   r   s   @r~   rE   rE      si    JC JXhsBII~>V5W Jcg J J
& 
T&\ 
% %F % %r   rE   c            
          ^  \ rS rSr SS\S\S\\S\R                  4      SS4U 4S jjjr	S	\
S\\
   4S
 jrS	\
S\
4S jrSrU =r$ )rF      Nr   r7   ru   .r"   c                 <  > [         TU ]  5         Uc  [        nU" USSS9U l        UnU" XSS9U l        U" XDSSS9U l        U" USSSS9U l        U" XSS9U l        U" XDSSS9U l        U" XDSSS9U l	        U" XDSSS9U l
        U" USSSS9U l        U" USSS9U l        g )	Nr2   r   r-   r   r$   r   r%   r/   r$   r   r%   r   )rA   rB   rC   r   branch7x7_1branch7x7_2branch7x7_3branch7x7dbl_1branch7x7dbl_2branch7x7dbl_3branch7x7dbl_4branch7x7dbl_5r   )rt   r   r7   ru   c7r}   s        r~   rB   InceptionC.__init__   s     	$J#K!D%k1E%b&&Q%b#66R(aH(VVT(VVT(VVT(SffU%k3AFr   r   c                    U R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R	                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      n[        R                  " USSSS9nU R                  U5      nX#XE/nU$ r   )r   r   r   r   r   r   r   r   r   r   r   r   )rt   r   r   	branch7x7branch7x7dblr   r   s          r~   r   InceptionC._forward	  s    NN1%	$$Q'	$$Y/	$$Y/	**1-**<8**<8**<8**<8ll1!AqI&&{3Cr   c                 R    U R                  U5      n[        R                  " US5      $ r   r   r   s      r~   r   InceptionC.forward  r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r~   rF   rF      s|    dhGG.1G?GQTVXV_V_Q_H`?aG	G G*& T&\ &% %F % %r   rF   c                      ^  \ rS rSrSS\S\\S\R                  4      SS4U 4S jjjr	S\
S\\
   4S	 jrS\
S\
4S
 jrSrU =r$ )rG   i!  Nr   ru   .r"   c                    > [         TU ]  5         Uc  [        nU" USSS9U l        U" SSSSS9U l        U" USSS9U l        U" SSSS	S
9U l        U" SSSSS
9U l        U" SSSSS9U l        g )Nr2   r   r-   @  r%   r
   r*   r   r   r/   r   r   )	rA   rB   rC   branch3x3_1branch3x3_2branch7x7x3_1branch7x7x3_2branch7x7x3_3branch7x7x3_4r   s      r~   rB   InceptionD.__init__"  s    $J%k3AF%c3AaH'SaH'SffU'SffU'SaJr   r   c                    U R                  U5      nU R                  U5      nU R                  U5      nU R                  U5      nU R	                  U5      nU R                  U5      n[        R                  " USSS9nX#U/nU$ r   )r   r   r   r   r   r   r   r   )rt   r   r   branch7x7x3r   r   s         r~   r   InceptionD._forward.  s    $$Q'	$$Y/	((+((5((5((5ll1!A>;7r   c                 R    U R                  U5      n[        R                  " US5      $ r   r   r   s      r~   r   InceptionD.forward;  r   r   )r   r   r   r   r   r   r   r   r   s   @r~   rG   rG   !  si    
KC 
KXhsBII~>V5W 
Kcg 
K 
K& T&\ % %F % %r   rG   c                      ^  \ rS rSrSS\S\\S\R                  4      SS4U 4S jjjr	S\
S\\
   4S	 jrS\
S\
4S
 jrSrU =r$ )rH   r   Nr   ru   .r"   c                 (  > [         TU ]  5         Uc  [        nU" USSS9U l        U" USSS9U l        U" SSSSS9U l        U" SSSS	S9U l        U" US
SS9U l        U" S
SSSS9U l        U" SSSSS9U l	        U" SSSS	S9U l
        U" USSS9U l        g )Nr   r   r-   r   )r   r%   )r   r   r/   )r%   r   )r   r   i  r%   r2   )rA   rB   rC   r   r   branch3x3_2abranch3x3_2br   r   branch3x3dbl_3abranch3x3dbl_3br   r   s      r~   rB   InceptionE.__init__A  s    $J#K!D%k3AF&sCVVT&sCVVT(cqI(cq!L)#sPVW)#sPVW%k3AFr   r   c                    U R                  U5      nU R                  U5      nU R                  U5      U R                  U5      /n[        R
                  " US5      nU R                  U5      nU R                  U5      nU R                  U5      U R                  U5      /n[        R
                  " US5      n[        R                  " USSSS9nU R                  U5      nX#XE/nU$ )Nr   r%   r   )r   r   r   r   rm   r   r   r   r   r   r   r   r   )rt   r   r   r   r   r   r   s          r~   r   InceptionE._forwardR  s    NN1%	$$Q'	i(i(
	 IIi+	**1-**<8  .  .
 yyq1ll1!AqI&&{3Cr   c                 R    U R                  U5      n[        R                  " US5      $ r   r   r   s      r~   r   InceptionE.forwardj  r   r   )	r   r   r   r   r   r   r   r   r   r   r   r   s   @r~   rH   rH   @  si    GC GXhsBII~>V5W Gcg G G"& T&\ 0% %F % %r   rH   c            
       x   ^  \ rS rSr SS\S\S\\S\R                  4      SS4U 4S jjjr	S	\
S\
4S
 jrSrU =r$ )rI   io  Nr   r   ru   .r"   c                    > [         TU ]  5         Uc  [        nU" USSS9U l        U" SSSS9U l        SU R                  l        [        R                  " SU5      U l        SU R                  l        g )Nr6   r   r-   r5   r'   g{Gz?MbP?)	rA   rB   rC   conv0conv1r;   r   rf   rg   )rt   r   r   ru   r}   s       r~   rB   InceptionAux.__init__p  sd     	$JSa@
Sa8
 

))C-r   r   c                     [         R                  " USSS9nU R                  U5      nU R                  U5      n[         R                  " US5      n[
        R                  " US5      nU R                  U5      nU$ )Nr'   r%   r*   r9   r   )r   r   r  r  adaptive_avg_pool2drm   r   rg   rt   r   s     r~   r   InceptionAux.forward|  sd    LL!4JJqMJJqM !!!V,MM!QGGAJr   )r  r  rg   r   )r   r   r   r   r   r   r   r   r   rB   r	   r   r   r   r   s   @r~   rI   rI   o  s_    cg

-0
>FxPSUWU^U^P^G_>`
	
 
 F  r   rI   c                   N   ^  \ rS rSrS\S\S\SS4U 4S jjrS\S\4S	 jrS
r	U =r
$ )rC   i  r   out_channelskwargsr"   Nc                    > [         TU ]  5         [        R                  " X4SS0UD6U l        [        R
                  " USS9U l        g )Nrs   Fr  )eps)rA   rB   r   rj   convrq   bn)rt   r   r  r  r}   s       r~   rB   BasicConv2d.__init__  s:    IIkNeNvN	..59r   r   c                 p    U R                  U5      nU R                  U5      n[        R                  " USS9$ )NT)inplace)r  r  r   relur  s     r~   r   BasicConv2d.forward  s-    IIaLGGAJvva&&r   )r  r  )r   r   r   r   r   r   rB   r	   r   r   r   r   s   @r~   rC   rC     s<    :C :s :c :d :
' 'F ' 'r   rC   c                   P    \ rS rSr\" S\" \SSS9SS\SS	S
SS.0SSSS.S9r\r	Sr
g)r   i  zDhttps://download.pytorch.org/models/inception_v3_google-0cc3c7bd.pthi+  iV  )	crop_sizeresize_sizeir)K   r  zRhttps://github.com/pytorch/vision/tree/main/references/classification#inception-v3zImageNet-1KgA`RS@g\W@)zacc@1zacc@5g'1@goY@z1These weights are ported from the original paper.)
num_paramsmin_size
categoriesrecipe_metrics_ops
_file_size_docs)url
transformsmeta N)r   r   r   r   r   r   r   r   IMAGENET1K_V1DEFAULTr   r)  r   r~   r   r     sR    R.#3O" .j##  !L
M& Gr   r   
pretrained)weightsT)r-  progressr-  r.  r  r"   c                 ~   [         R                  U 5      n UR                  SS5      nU bP  SU;  a  [        USS5        [        USS5        [        USS5        [        US[	        U R
                  S   5      5        [        S
0 UD6nU b4  UR                  U R                  USS	95        U(       d  SUl	        SUl
        U$ )a  
Inception v3 model architecture from
`Rethinking the Inception Architecture for Computer Vision <http://arxiv.org/abs/1512.00567>`_.

.. note::
    **Important**: In contrast to the other models the inception_v3 expects tensors with a size of
    N x 3 x 299 x 299, so ensure your images are sized accordingly.

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

.. autoclass:: torchvision.models.Inception_V3_Weights
    :members:
r   TNr   r    Fr   r   )r.  
check_hashr)  )r   verifygetr   rM   r(  r   load_state_dictget_state_dictr   r_   )r-  r.  r  original_aux_logitsmodels        r~   r   r     s    6 #))'2G **\48F*!&*;TBflD9fne<fmSl9S5TU  Eg44hSW4XY"$E"EOLr   )-rJ   collectionsr   	functoolsr   typingr   r   r   rm   torch.nn.functionalr   
functionalr   r	   transforms._presetsr   utilsr   _apir   r   r   _metar   _utilsr   r   __all__r   __annotations__r   r   r   rD   rE   rF   rG   rH   rI   rC   r   r*  r   r   r)  r   r~   <module>rC     sW    "  * *     5 ' 6 6 ' B j 08\2JK .4HVDT#U    % Q. Q.h$% $%N% %8+% +%\% %>,% ,%^299 >	'")) 	'; . ,0D0R0R!ST>BUY +X&:; +d +eh +mw + U +r   