§
    ù²ÅjzC  ã                   ó´  — d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlm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j        ¦  «        Z  G d„ dej        ¦  «        Z! G d„ dej"        ¦  «        Z# G d„ dej"        ¦  «        Z$ G d„ dej        ¦  «        Z% G d„ dej        ¦  «        Z& G d„ dej"        ¦  «        Z'de	e
e#e$f                  dee	e
ee!e f                           dee(         d ed!ej"        f         d"ee         d#e)d$ed%e'fd&„Z*d'ed(d)d*œZ+ G d+„ d,e¦  «        Z, G d-„ d.e¦  «        Z- G d/„ d0e¦  «        Z. e¦   «          ed1e,j/        f¬2¦  «        dd3d4œd"ee,         d#e)d$ed%e'fd5„¦   «         ¦   «         Z0 e¦   «          ed1e-j/        f¬2¦  «        dd3d4œd"ee-         d#e)d$ed%e'fd6„¦   «         ¦   «         Z1 e¦   «          ed1e.j/        f¬2¦  «        dd3d4œd"ee.         d#e)d$ed%e'fd7„¦   «         ¦   «         Z2dd8lm3Z3  e3e,j/        j4        e-j/        j4        e.j/        j4        d9œ¦  «        Z5dS ):é    )Úpartial)ÚAnyÚCallableÚListÚOptionalÚSequenceÚTupleÚTypeÚUnionN)ÚTensoré   )ÚVideoClassification)Ú_log_api_usage_onceé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_KINETICS400_CATEGORIES)Ú_ovewrite_named_paramÚhandle_legacy_interface)ÚVideoResNetÚR3D_18_WeightsÚMC3_18_WeightsÚR2Plus1D_18_WeightsÚr3d_18Úmc3_18Úr2plus1d_18c                   óz   ‡ — e Zd Z	 ddededee         dededdfˆ fd	„Zededeeeef         fd
„¦   «         Zˆ xZ	S )ÚConv3DSimpleNé   Ú	in_planesÚ
out_planesÚ	midplanesÚstrideÚpaddingÚreturnc                 óV   •— t          ¦   «                              ||d||d¬¦  «         d S )N)r   r   r   F©Úin_channelsÚout_channelsÚkernel_sizer$   r%   Úbias©ÚsuperÚ__init__©Úselfr!   r"   r#   r$   r%   Ú	__class__s         €úPC:\Projects\Historical\venv\Lib\site-packages\torchvision/models/video/resnet.pyr/   zConv3DSimple.__init__   sB   ø€ õ 	‰Œ×ÒØ!Ø#Ø!ØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
ó    c                 ó   — | | | fS ©N© ©r$   s    r3   Úget_downsample_stridez"Conv3DSimple.get_downsample_stride'   ó   € à�v˜vÐ%Ð%r4   ©Nr    r    ©
Ú__name__Ú
__module__Ú__qualname__Úintr   r/   Ústaticmethodr	   r9   Ú__classcell__©r2   s   @r3   r   r      s²   ø€ € € € € àpqð
ð 
Øð
Ø*-ð
Ø:BÀ3¼-ð
ØX[ð
Øjmð
à	ð
ð 
ð 
ð 
ð 
ð 
ð ð& cð &¨e°C¸¸c°MÔ.Bð &ð &ð &ñ „\ð&ð &ð &ð &ð &r4   r   c                   ól   ‡ — e Zd Zddedededededdfˆ fd	„Zededeeeef         fd
„¦   «         Zˆ xZS )ÚConv2Plus1Dr    r!   r"   r#   r$   r%   r&   Nc                 ó  •— t          ¦   «                              t          j        ||dd||fd||fd¬¦  «        t          j        |¦  «        t          j        d¬¦  «        t          j        ||d|ddf|ddfd¬¦  «        ¦  «         d S )	N©r    r   r   r    r   F©r+   r$   r%   r,   T©Úinplace©r   r    r    ©r.   r/   ÚnnÚConv3dÚBatchNorm3dÚReLUr0   s         €r3   r/   zConv2Plus1D.__init__-   s¯   ø€ Ý‰Œ×ÒÝŒIØØØ%Ø˜6 6Ð*Ø˜G WÐ-Øðñ ô õ ŒN˜9Ñ%Ô%ÝŒG˜DÐ!Ñ!Ô!ÝŒIØ˜:°9ÀfÈaÐQRÀ^Ð^eÐghÐjkÐ]lÐsxðñ ô ñ	
ô 	
ð 	
ð 	
ð 	
r4   c                 ó   — | | | fS r6   r7   r8   s    r3   r9   z!Conv2Plus1D.get_downsample_stride>   r:   r4   ©r    r    )	r=   r>   r?   r@   r/   rA   r	   r9   rB   rC   s   @r3   rE   rE   ,   s¨   ø€ € € € € ð
ð 
 #ð 
°3ð 
À3ð 
ÐPSð 
Ðbeð 
Ðnrð 
ð 
ð 
ð 
ð 
ð 
ð" ð& cð &¨e°C¸¸c°MÔ.Bð &ð &ð &ñ „\ð&ð &ð &ð &ð &r4   rE   c                   óz   ‡ — e Zd Z	 ddededee         dededdfˆ fd	„Zededeeeef         fd
„¦   «         Zˆ xZ	S )ÚConv3DNoTemporalNr    r!   r"   r#   r$   r%   r&   c           	      ób   •— t          ¦   «                              ||dd||fd||fd¬¦  «         d S )NrG   r    r   Fr(   r-   r0   s         €r3   r/   zConv3DNoTemporal.__init__D   sP   ø€ õ 	‰Œ×ÒØ!Ø#Ø!Ø�v˜vÐ&Ø˜ Ð)Øð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r4   c                 ó   — d| | fS ©Nr    r7   r8   s    r3   r9   z&Conv3DNoTemporal.get_downsample_strideQ   s   € à�&˜&Ð Ð r4   r;   r<   rC   s   @r3   rT   rT   C   s²   ø€ € € € € àpqð
ð 
Øð
Ø*-ð
Ø:BÀ3¼-ð
ØX[ð
Øjmð
à	ð
ð 
ð 
ð 
ð 
ð 
ð ð! cð !¨e°C¸¸c°MÔ.Bð !ð !ð !ñ „\ð!ð !ð !ð !ð !r4   rT   c                   ó‚   ‡ — e Zd ZdZ	 	 ddedededej        f         dedeej                 d	dfˆ fd
„Z	de
d	e
fd„Zˆ xZS )Ú
BasicBlockr    NÚinplanesÚplanesÚconv_builder.r$   Ú
downsampler&   c                 óØ  •— ||z  dz  dz  dz  |dz  dz  d|z  z   z  }t          ¦   «                              ¦   «          t          j         |||||¦  «        t          j        |¦  «        t          j        d¬¦  «        ¦  «        | _        t          j         ||||¦  «        t          j        |¦  «        ¦  «        | _        t          j        d¬¦  «        | _        || _	        || _
        d S )Nr   TrI   )r.   r/   rM   Ú
SequentialrO   rP   Úconv1Úconv2Úrelur]   r$   ©r1   rZ   r[   r\   r$   r]   r#   r2   s          €r3   r/   zBasicBlock.__init__Z   sã   ø€ ð  Ñ&¨Ñ*¨QÑ.°Ñ2¸À1¹ÀqÑ8HÈ1ÈvÉ:Ñ8UÑVˆ	å‰Œ×ÒÑÔÐÝ”]ØˆL˜ 6¨9°fÑ=Ô=½r¼~ÈfÑ?UÔ?UÕWYÔW^ÐgkÐWlÑWlÔWlñ
ô 
ˆŒ
õ ”] < <°¸À	Ñ#JÔ#JÍBÌNÐ[aÑLbÔLbÑcÔcˆŒ
Ý”G DÐ)Ñ)Ô)ˆŒ	Ø$ˆŒØˆŒˆˆr4   Úxc                 óÊ   — |}|                       |¦  «        }|                      |¦  «        }| j        �|                      |¦  «        }||z  }|                      |¦  «        }|S r6   )r`   ra   r]   rb   ©r1   rd   ÚresidualÚouts       r3   ÚforwardzBasicBlock.forwardm   s[   € Øˆà�jŠj˜‰mŒmˆØ�jŠj˜‰oŒoˆØŒ?Ð&Ø—’ qÑ)Ô)ˆHàˆx‰ˆØ�iŠi˜‰nŒnˆàˆ
r4   ©r    N©r=   r>   r?   Ú	expansionr@   r   rM   ÚModuler   r/   r   ri   rB   rC   s   @r3   rY   rY   V   s½   ø€ € € € € à€Ið Ø*.ðð àðð ðð ˜s B¤I˜~Ô.ð	ð
 ðð ˜RœYÔ'ðð 
ðð ð ð ð ð ð&˜ð  Fð ð ð ð ð ð ð ð r4   rY   c                   ó‚   ‡ — e Zd ZdZ	 	 ddedededej        f         ded	eej                 d
dfˆ fd„Z	de
d
e
fd„Zˆ xZS )Ú
Bottlenecké   r    NrZ   r[   r\   .r$   r]   r&   c                 óº  •— t          ¦   «                              ¦   «          ||z  dz  dz  dz  |dz  dz  d|z  z   z  }t          j        t          j        ||dd¬¦  «        t          j        |¦  «        t          j        d¬¦  «        ¦  «        | _        t          j         |||||¦  «        t          j        |¦  «        t          j        d¬¦  «        ¦  «        | _        t          j        t          j        ||| j	        z  dd¬¦  «        t          j        || j	        z  ¦  «        ¦  «        | _
        t          j        d¬¦  «        | _        || _        || _        d S )Nr   r    F)r+   r,   TrI   )r.   r/   rM   r_   rN   rO   rP   r`   ra   rl   Úconv3rb   r]   r$   rc   s          €r3   r/   zBottleneck.__init__~   sI  ø€ õ 	‰Œ×ÒÑÔÐØ Ñ&¨Ñ*¨QÑ.°Ñ2¸À1¹ÀqÑ8HÈ1ÈvÉ:Ñ8UÑVˆ	õ ”]ÝŒI�h °A¸EÐBÑBÔBÅBÄNÐSYÑDZÔDZÕ\^Ô\cÐlpÐ\qÑ\qÔ\qñ
ô 
ˆŒ
õ ”]ØˆL˜ ¨°FÑ;Ô;½R¼^ÈFÑ=SÔ=SÕUWÔU\ÐeiÐUjÑUjÔUjñ
ô 
ˆŒ
õ
 ”]ÝŒI�f˜f t¤~Ñ5À1È5ÐQÑQÔQÝŒN˜6 D¤NÑ2Ñ3Ô3ñ
ô 
ˆŒ
õ ”G DÐ)Ñ)Ô)ˆŒ	Ø$ˆŒØˆŒˆˆr4   rd   c                 óô   — |}|                       |¦  «        }|                      |¦  «        }|                      |¦  «        }| j        �|                      |¦  «        }||z  }|                      |¦  «        }|S r6   )r`   ra   rr   r]   rb   rf   s       r3   ri   zBottleneck.forwardœ   sj   € Øˆà�jŠj˜‰mŒmˆØ�jŠj˜‰oŒoˆØ�jŠj˜‰oŒoˆàŒ?Ð&Ø—’ qÑ)Ô)ˆHàˆx‰ˆØ�iŠi˜‰nŒnˆàˆ
r4   rj   rk   rC   s   @r3   ro   ro   {   s½   ø€ € € € € Ø€Ið Ø*.ðð àðð ðð ˜s B¤I˜~Ô.ð	ð
 ðð ˜RœYÔ'ðð 
ðð ð ð ð ð ð<˜ð  Fð ð ð ð ð ð ð ð r4   ro   c                   ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )Ú	BasicStemz$The default conv-batchnorm-relu stemr&   Nc           
      óÈ   •— t          ¦   «                              t          j        dddddd¬¦  «        t          j        d¦  «        t          j        d¬	¦  «        ¦  «         d S )
Nr   é@   )r   é   rx   ©r    r   r   rG   FrH   TrI   rL   ©r1   r2   s    €r3   r/   zBasicStem.__init__¯   sa   ø€ Ý‰Œ×ÒÝŒI�a˜¨¸9ÈiÐ^cÐdÑdÔdÝŒN˜2ÑÔÝŒG˜DÐ!Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
r4   ©r&   N©r=   r>   r?   Ú__doc__r/   rB   rC   s   @r3   ru   ru   ¬   sC   ø€ € € € € Ø.Ð.ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r4   ru   c                   ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚR2Plus1dStemzRR(2+1)D stem is different than the default one as it uses separated 3D convolutionr&   Nc                 óH  •— t          ¦   «                              t          j        dddddd¬¦  «        t          j        d¦  «        t          j        d¬	¦  «        t          j        dd
dddd¬¦  «        t          j        d
¦  «        t          j        d¬	¦  «        ¦  «         d S )Nr   é-   )r    rx   rx   ry   )r   r   r   FrH   TrI   rw   rK   ©r    r    r    )r    r   r   rL   rz   s    €r3   r/   zR2Plus1dStem.__init__º   s™   ø€ Ý‰Œ×ÒÝŒI�a˜¨¸9ÈiÐ^cÐdÑdÔdÝŒN˜2ÑÔÝŒG˜DÐ!Ñ!Ô!ÝŒI�b˜"¨)¸IÈyÐ_dÐeÑeÔeÝŒN˜2ÑÔÝŒG˜DÐ!Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
r4   r{   r|   rC   s   @r3   r   r   ·   sC   ø€ € € € € Ø\Ð\ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r4   r   c                   ó&  ‡ — e Zd Z	 	 ddeeeef                  deeeee	e
f                           dee         dedej        f         ded	ed
dfˆ fd„Zded
efd„Z	 ddeeeef                  deeee	e
f                  dededed
ej        fd„Zˆ xZS )r   é�  FÚblockÚconv_makersÚlayersÚstem.Únum_classesÚzero_init_residualr&   Nc                 ó¶  •— t          ¦   «                              ¦   «          t          | ¦  «         d| _         |¦   «         | _        |                      ||d         d|d         d¬¦  «        | _        |                      ||d         d|d         d¬¦  «        | _        |                      ||d         d|d         d¬¦  «        | _        |                      ||d         d	|d         d¬¦  «        | _	        t          j        d
¦  «        | _        t          j        d	|j        z  |¦  «        | _        |                      ¦   «         D �];}t#          |t          j        ¦  «        rTt          j                             |j        dd¬¦  «         |j        �%t          j                             |j        d¦  «         Œqt#          |t          j        ¦  «        rKt          j                             |j        d¦  «         t          j                             |j        d¦  «         ŒÖt#          |t          j        ¦  «        rKt          j                             |j        dd¦  «         t          j                             |j        d¦  «         �Œ=|rV|                      ¦   «         D ]C}t#          |t4          ¦  «        r*t          j                             |j        j        d¦  «         ŒBdS dS )a^  Generic resnet video generator.

        Args:
            block (Type[Union[BasicBlock, Bottleneck]]): resnet building block
            conv_makers (List[Type[Union[Conv3DSimple, Conv3DNoTemporal, Conv2Plus1D]]]): generator
                function for each layer
            layers (List[int]): number of blocks per layer
            stem (Callable[..., nn.Module]): module specifying the ResNet stem.
            num_classes (int, optional): Dimension of the final FC layer. Defaults to 400.
            zero_init_residual (bool, optional): Zero init bottleneck residual BN. Defaults to False.
        rw   r   r    r8   é€   r   é   r   i   r‚   Úfan_outrb   )ÚmodeÚnonlinearityNg{®Gáz„?)r.   r/   r   rZ   rˆ   Ú_make_layerÚlayer1Úlayer2Úlayer3Úlayer4rM   ÚAdaptiveAvgPool3dÚavgpoolÚLinearrl   ÚfcÚmodulesÚ
isinstancerN   ÚinitÚkaiming_normal_Úweightr,   Ú	constant_rO   Únormal_ro   Úbn3)	r1   r…   r†   r‡   rˆ   r‰   rŠ   Úmr2   s	           €r3   r/   zVideoResNet.__init__Æ   sr  ø€ õ( 	‰Œ×ÒÑÔÐÝ˜DÑ!Ô!Ð!ØˆŒà�D‘F”FˆŒ	à×&Ò& u¨k¸!¬n¸bÀ&ÈÄ)ÐTUÐ&ÑVÔVˆŒØ×&Ò& u¨k¸!¬n¸cÀ6È!Ä9ÐUVÐ&ÑWÔWˆŒØ×&Ò& u¨k¸!¬n¸cÀ6È!Ä9ÐUVÐ&ÑWÔWˆŒØ×&Ò& u¨k¸!¬n¸cÀ6È!Ä9ÐUVÐ&ÑWÔWˆŒåÔ+¨IÑ6Ô6ˆŒÝ”)˜C %¤/Ñ1°;Ñ?Ô?ˆŒð —’‘”ð 
	-ñ 
	-ˆAÝ˜!�RœYÑ'Ô'ð 	-Ý”×'Ò'¨¬°yÈvÐ'ÑVÔVÐVØ”6Ð%Ý”G×%Ò% a¤f¨aÑ0Ô0Ð0øÝ˜A�rœ~Ñ.Ô.ð -Ý”×!Ò! !¤(¨AÑ.Ô.Ð.Ý”×!Ò! !¤&¨!Ñ,Ô,Ð,Ð,Ý˜A�rœyÑ)Ô)ð -Ý”—’ ¤¨!¨TÑ2Ô2Ð2Ý”×!Ò! !¤&¨!Ñ,Ô,Ð,ùàð 	7Ø—\’\‘^”^ð 7ð 7�Ý˜a¥Ñ,Ô,ð 7Ý”G×%Ò% a¤e¤l°AÑ6Ô6Ð6øð	7ð 	7ð7ð 7r4   rd   c                 óV  — |                       |¦  «        }|                      |¦  «        }|                      |¦  «        }|                      |¦  «        }|                      |¦  «        }|                      |¦  «        }|                     d¦  «        }|                      |¦  «        }|S rW   )rˆ   r’   r“   r”   r•   r—   Úflattenr™   )r1   rd   s     r3   ri   zVideoResNet.forwardú   s   € Ø�IŠI�a‰LŒLˆà�KŠK˜‰NŒNˆØ�KŠK˜‰NŒNˆØ�KŠK˜‰NŒNˆØ�KŠK˜‰NŒNˆà�LŠL˜‰OŒOˆà�IŠI�a‰LŒLˆØ�GŠG�A‰JŒJˆàˆr4   r    r\   r[   Úblocksr$   c           	      ó  — d }|dk    s| j         ||j        z  k    rh|                     |¦  «        }t          j        t          j        | j         ||j        z  d|d¬¦  «        t          j        ||j        z  ¦  «        ¦  «        }g }|                      || j         ||||¦  «        ¦  «         ||j        z  | _         t          d|¦  «        D ]'}	|                      || j         ||¦  «        ¦  «         Œ(t          j        |Ž S )Nr    F)r+   r$   r,   )	rZ   rl   r9   rM   r_   rN   rO   ÚappendÚrange)
r1   r…   r\   r[   r¥   r$   r]   Ú	ds_strider‡   Úis
             r3   r‘   zVideoResNet._make_layer	  s  € ð ˆ
à�QŠ;ˆ;˜$œ-¨6°E´OÑ+CÒCÐCØ$×:Ò:¸6ÑBÔBˆIÝœÝ”	˜$œ-¨°%´/Ñ)AÈqÐYbÐinÐoÑoÔoÝ”˜v¨¬Ñ7Ñ8Ô8ñô ˆJð ˆØ�Š�e�e˜DœM¨6°<ÀÈÑTÔTÑUÔUÐUà ¤Ñ0ˆŒÝ�q˜&Ñ!Ô!ð 	Fð 	FˆAØ�MŠM˜%˜% ¤¨v°|ÑDÔDÑEÔEÐEÐEåŒ}˜fÐ%Ð%r4   )r„   F)r    )r=   r>   r?   r
   r   rY   ro   r   r   rT   rE   r   r@   r   rM   rm   Úboolr/   r   ri   r_   r‘   rB   rC   s   @r3   r   r   Å   sa  ø€ € € € € ð Ø#(ð27ð 27à�E˜* jÐ0Ô1Ô2ð27ð ˜d 5¨Ð7GÈÐ)TÔ#UÔVÔWð27ð �S”	ð	27ð
 �s˜BœI�~Ô&ð27ð ð27ð !ð27ð 
ð27ð 27ð 27ð 27ð 27ð 27ðh˜ð  Fð ð ð ð ð* ð&ð &à�E˜* jÐ0Ô1Ô2ð&ð ˜5 Ð/?ÀÐ!LÔMÔNð&ð ð	&ð
 ð&ð ð&ð 
Œð&ð &ð &ð &ð &ð &ð &ð &r4   r   r…   r†   r‡   rˆ   .ÚweightsÚprogressÚkwargsr&   c                 óÔ   — |�)t          |dt          |j        d         ¦  «        ¦  «         t          | |||fi |¤Ž}|�*|                     |                     |d¬¦  «        ¦  «         |S )Nr‰   Ú
categoriesT)r­   Ú
check_hash)r   ÚlenÚmetar   Úload_state_dictÚget_state_dict)r…   r†   r‡   rˆ   r¬   r­   r®   Úmodels           r3   Ú_video_resnetr·   #  sy   € ð ÐÝ˜f mµS¸¼ÀlÔ9SÑ5TÔ5TÑUÔUÐUå˜˜{¨F°DÐCÐC¸FÐCÐC€EàÐØ×Ò˜g×4Ò4¸hÐSWÐ4ÑXÔXÑYÔYÐYà€Lr4   rR   zKhttps://github.com/pytorch/vision/tree/main/references/video_classificationz­The weights reproduce closely the accuracy of the paper. The accuracies are estimated on video-level with parameters `frame_rate=15`, `clips_per_video=5`, and `clip_len=16`.)Úmin_sizer°   ÚrecipeÚ_docsc            
       ób   — e Zd Z ed eedd¬¦  «        i e¥ddddd	œid
ddœ¥¬¦  «        ZeZdS )r   z7https://download.pytorch.org/models/r3d_18-b3b3357e.pth©ép   r½   ©rŒ   é«   ©Ú	crop_sizeÚresize_sizeiP5ýúKinetics-400gš™™™™™O@g-²�ï§ÞT@©zacc@1zacc@5gð§ÆK7YD@gåÐ"ÛùÖ_@©Ú
num_paramsÚ_metricsÚ_opsÚ
_file_size©ÚurlÚ
transformsr³   N©	r=   r>   r?   r   r   r   Ú_COMMON_METAÚKINETICS400_V1ÚDEFAULTr7   r4   r3   r   r   B  sƒ   € € € € € Ø�WØEØ�7Ð.¸*ÐR\Ð]Ñ]Ô]ð
Øð
à"àØ#Ø#ð!ð !ðð Ø!ð
ð 
ð 
ðñ ô €Nð  €G€G€Gr4   r   c            
       ób   — e Zd Z ed eedd¬¦  «        i e¥ddddd	œid
ddœ¥¬¦  «        ZeZdS )r   z7https://download.pytorch.org/models/mc3_18-a90a0ba3.pthr¼   r¾   rÀ   iPu² rÃ   g{®GáúO@g¸…ëQU@rÄ   g–C‹lç«E@g¼t“VF@rÅ   rÊ   NrÍ   r7   r4   r3   r   r   V  sƒ   € € € € € Ø�WØEØ�7Ð.¸*ÐR\Ð]Ñ]Ô]ð
Øð
à"àØ#Ø#ð!ð !ðð Ø ð
ð 
ð 
ðñ ô €Nð  €G€G€Gr4   r   c            
       ób   — e Zd Z ed eedd¬¦  «        i e¥ddddd	œid
ddœ¥¬¦  «        ZeZdS )r   z<https://download.pytorch.org/models/r2plus1d_18-91a641e6.pthr¼   r¾   rÀ   i­»àrÃ   gƒÀÊ¡ÝP@g33333‹U@rÄ   gßO�—nBD@g1¬Z^@rÅ   rÊ   NrÍ   r7   r4   r3   r   r   j  sƒ   € € € € € Ø�WØJØ�7Ð.¸*ÐR\Ð]Ñ]Ô]ð
Øð
à"àØ#Ø#ð!ð !ðð Ø!ð
ð 
ð 
ðñ ô €Nð  €G€G€Gr4   r   Ú
pretrained)r¬   T)r¬   r­   c                 ó„   — t                                | ¦  «        } t          t          t          gdz  g d¢t
          | |fi |¤ŽS )aÔ  Construct 18 layer Resnet3D model.

    .. betastatus:: video module

    Reference: `A Closer Look at Spatiotemporal Convolutions for Action Recognition <https://arxiv.org/abs/1711.11248>`__.

    Args:
        weights (:class:`~torchvision.models.video.R3D_18_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.video.R3D_18_Weights`
            below for more details, and possible values. By default, no
            pre-trained weights are used.
        progress (bool): If True, displays a progress bar of the download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.video.resnet.VideoResNet`` base class.
            Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/video/resnet.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.video.R3D_18_Weights
        :members:
    rp   ©r   r   r   r   )r   Úverifyr·   rY   r   ru   ©r¬   r­   r®   s      r3   r   r   ~  sU   € õ0 ×#Ò# GÑ,Ô,€GåÝÝ	ˆ˜ÑØˆˆÝØØðð ð ðð ð r4   c                 ó–   — t                                | ¦  «        } t          t          t          gt
          gdz  z   g d¢t          | |fi |¤ŽS )aä  Construct 18 layer Mixed Convolution network as in

    .. betastatus:: video module

    Reference: `A Closer Look at Spatiotemporal Convolutions for Action Recognition <https://arxiv.org/abs/1711.11248>`__.

    Args:
        weights (:class:`~torchvision.models.video.MC3_18_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.video.MC3_18_Weights`
            below for more details, and possible values. By default, no
            pre-trained weights are used.
        progress (bool): If True, displays a progress bar of the download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.video.resnet.VideoResNet`` base class.
            Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/video/resnet.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.video.MC3_18_Weights
        :members:
    r   rÕ   )r   rÖ   r·   rY   r   rT   ru   r×   s      r3   r   r   £  s^   € õ0 ×#Ò# GÑ,Ô,€GåÝÝ	ˆÕ*Ð+¨aÑ/Ñ/ØˆˆÝØØðð ð ðð ð r4   c                 ó„   — t                                | ¦  «        } t          t          t          gdz  g d¢t
          | |fi |¤ŽS )aî  Construct 18 layer deep R(2+1)D network as in

    .. betastatus:: video module

    Reference: `A Closer Look at Spatiotemporal Convolutions for Action Recognition <https://arxiv.org/abs/1711.11248>`__.

    Args:
        weights (:class:`~torchvision.models.video.R2Plus1D_18_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.video.R2Plus1D_18_Weights`
            below for more details, and possible values. By default, no
            pre-trained weights are used.
        progress (bool): If True, displays a progress bar of the download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.video.resnet.VideoResNet`` base class.
            Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/video/resnet.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.video.R2Plus1D_18_Weights
        :members:
    rp   rÕ   )r   rÖ   r·   rY   rE   r   r×   s      r3   r   r   È  sU   € õ0 "×(Ò(¨Ñ1Ô1€GåÝÝ	ˆ˜ÑØˆˆÝØØðð ð ðð ð r4   )Ú
_ModelURLs)r   r   r   )6Ú	functoolsr   Útypingr   r   r   r   r   r	   r
   r   Útorch.nnrM   Útorchr   Útransforms._presetsr   Úutilsr   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   Ú__all__rN   r   r_   rE   rT   rm   rY   ro   ru   r   r   r@   r«   r·   rÎ   r   r   r   rÏ   r   r   r   rÚ   rË   Ú
model_urlsr7   r4   r3   ú<module>ræ      sa  ðØ Ð Ð Ð Ð Ð Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nà Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø (Ð (Ð (Ð (Ð (Ð (Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø +Ð +Ð +Ð +Ð +Ð +Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cðð ð €ð&ð &ð &ð &ð &�2”9ñ &ô &ð &ð&&ð &ð &ð &ð &�"”-ñ &ô &ð &ð.!ð !ð !ð !ð !�r”yñ !ô !ð !ð&"ð "ð "ð "ð "�”ñ "ô "ð "ðJ.ð .ð .ð .ð .�”ñ .ô .ð .ðb
ð 
ð 
ð 
ð 
�”ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
�2”=ñ 
ô 
ð 
ð[&ð [&ð [&ð [&ð [&�"”)ñ [&ô [&ð [&ð|Ø��j *Ð,Ô-Ô.ðà˜$˜u \Ð3CÀ[Ð%PÔQÔRÔSðð �ŒIðð �3˜œ	�>Ô
"ð	ð
 �kÔ"ðð ðð ðð ðð ð ð ð* Ø)Ø[ð	Sðð €ðð ð ð ð �[ñ ô ð ð(ð ð ð ð �[ñ ô ð ð(ð ð ð ð ˜+ñ ô ð ð( €ÑÔØÐ ,°Ô0MÐ!NÐOÑOÔOØ26Èð  ð  ð  �x Ô/ð  À$ð  ÐY\ð  Ðalð  ð  ð  ñ PÔOñ Ôð ðF €ÑÔØÐ ,°Ô0MÐ!NÐOÑOÔOØ26Èð  ð  ð  �x Ô/ð  À$ð  ÐY\ð  Ðalð  ð  ð  ñ PÔOñ Ôð ðF €ÑÔØÐ ,Ð0CÔ0RÐ!SÐTÑTÔTØ<@ÐSWð  ð  ð  ˜HÐ%8Ô9ð  ÈDð  Ðcfð  Ðkvð  ð  ð  ñ UÔTñ Ôð ðH  Ð Ð Ð Ð Ð ð ˆZà Ô/Ô3Ø Ô/Ô3Ø*Ô9Ô=ðð ñô €
€
€
r4   