§
    ù²ÅjyC  ã                   óF  — d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	 d dl
Z
d dlmZ d dlmc mZ d dlmc 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(dej"        dede)ddfd„Z*de+de	e+e+e+e+f         de+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(„ d)e¦  «        Z0 G d*„ d+e¦  «        Z1 e¦   «          e d,e.j2        f¬-¦  «        dd.d/œdee.         de)dede(fd0„¦   «         ¦   «         Z3 e¦   «          e d,e/j2        f¬-¦  «        dd.d/œdee/         de)dede(fd1„¦   «         ¦   «         Z4 e¦   «          e d,e0j2        f¬-¦  «        dd.d/œdee0         de)dede(fd2„¦   «         ¦   «         Z5 e¦   «          e d,e1j2        f¬-¦  «        dd.d/œdee1         de)dede(fd3„¦   «         ¦   «         Z6dS )4é    N)ÚOrderedDict)Úpartial)ÚAnyÚListÚOptionalÚTuple)ÚTensoré   )ÚImageClassification)Ú_log_api_usage_onceé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_ovewrite_named_paramÚhandle_legacy_interface)	ÚDenseNetÚDenseNet121_WeightsÚDenseNet161_WeightsÚDenseNet169_WeightsÚDenseNet201_WeightsÚdensenet121Údensenet161Údensenet169Údensenet201c                   ó8  ‡ — e Zd Z	 ddedededededdfˆ fd	„Zd
ee         defd„Z	dee         defd„Z
ej        j        dee         defd„¦   «         Zej        j        dee         defd„¦   «         Zej        j        dedefd„¦   «         Zdedefd„Zˆ xZS )Ú_DenseLayerFÚnum_input_featuresÚgrowth_rateÚbn_sizeÚ	drop_rateÚmemory_efficientÚreturnNc                 óÖ  •— t          ¦   «                              ¦   «          t          j        |¦  «        | _        t          j        d¬¦  «        | _        t          j        |||z  ddd¬¦  «        | _        t          j        ||z  ¦  «        | _	        t          j        d¬¦  «        | _
        t          j        ||z  |dddd¬¦  «        | _        t          |¦  «        | _        || _        d S )NT©Úinplacer   F©Úkernel_sizeÚstrideÚbiasé   ©r)   r*   Úpaddingr+   )ÚsuperÚ__init__ÚnnÚBatchNorm2dÚnorm1ÚReLUÚrelu1ÚConv2dÚconv1Únorm2Úrelu2Úconv2Úfloatr"   r#   )Úselfr   r    r!   r"   r#   Ú	__class__s         €úLC:\Projects\Historical\venv\Lib\site-packages\torchvision/models/densenet.pyr0   z_DenseLayer.__init__    sÓ   ø€ õ 	‰Œ×ÒÑÔÐÝ”^Ð$6Ñ7Ô7ˆŒ
Ý”W TÐ*Ñ*Ô*ˆŒ
Ý”YÐ1°7¸[Ñ3HÐVWÐ`aÐhmÐnÑnÔnˆŒ
å”^ G¨kÑ$9Ñ:Ô:ˆŒ
Ý”W TÐ*Ñ*Ô*ˆŒ
Ý”Y˜w¨Ñ4°kÈqÐYZÐdeÐlqÐrÑrÔrˆŒ
å˜yÑ)Ô)ˆŒØ 0ˆÔÐÐó    Úinputsc                 ó¦   — t          j        |d¦  «        }|                      |                      |                      |¦  «        ¦  «        ¦  «        }|S ©Nr   )ÚtorchÚcatr7   r5   r3   )r<   r@   Úconcated_featuresÚbottleneck_outputs       r>   Úbn_functionz_DenseLayer.bn_function/   sE   € Ý!œI f¨aÑ0Ô0ÐØ ŸJšJ t§z¢z°$·*²*Ð=NÑ2OÔ2OÑ'PÔ'PÑQÔQÐØ Ð r?   Úinputc                 ó$   — |D ]}|j         r dS ŒdS )NTF)Úrequires_grad)r<   rH   Útensors      r>   Úany_requires_gradz_DenseLayer.any_requires_grad5   s-   € Øð 	ð 	ˆFØÔ#ð Ø�t�tðàˆur?   c                 ó8   ‡ — ˆ fd„}t          j        |g|¢R ddiŽS )Nc                  ó.   •— ‰                      | ¦  «        S ©N)rG   )r@   r<   s    €r>   Úclosurez7_DenseLayer.call_checkpoint_bottleneck.<locals>.closure=   s   ø€ Ø×#Ò# FÑ+Ô+Ð+r?   Úuse_reentrantF)ÚcpÚ
checkpoint)r<   rH   rP   s   `  r>   Úcall_checkpoint_bottleneckz&_DenseLayer.call_checkpoint_bottleneck;   s>   ø€ ð	,ð 	,ð 	,ð 	,ð 	,õ Œ}˜WÐB uÐBÐBÐB¸EÐBÐBÐBr?   c                 ó   — d S rO   © ©r<   rH   s     r>   Úforwardz_DenseLayer.forwardB   ó   € àˆr?   c                 ó   — d S rO   rV   rW   s     r>   rX   z_DenseLayer.forwardF   rY   r?   c                 óò  — t          |t          ¦  «        r|g}n|}| j        rX|                      |¦  «        rCt          j                             ¦   «         rt          d¦  «        ‚|                      |¦  «        }n|  	                    |¦  «        }|  
                    |                      |                      |¦  «        ¦  «        ¦  «        }| j        dk    r!t          j        || j        | j        ¬¦  «        }|S )Nz%Memory Efficient not supported in JITr   )ÚpÚtraining)Ú
isinstancer	   r#   rL   rC   ÚjitÚis_scriptingÚ	ExceptionrT   rG   r:   r9   r8   r"   ÚFÚdropoutr]   )r<   rH   Úprev_featuresrF   Únew_featuress        r>   rX   z_DenseLayer.forwardL   sì   € Ý�e�VÑ$Ô$ð 	"Ø"˜GˆMˆMà!ˆMàÔ ð 	@ T×%;Ò%;¸MÑ%JÔ%Jð 	@ÝŒy×%Ò%Ñ'Ô'ð IÝÐ GÑHÔHÐHà $× ?Ò ?ÀÑ NÔ NÐÐà $× 0Ò 0°Ñ ?Ô ?Ðà—z’z $§*¢*¨T¯ZªZÐ8IÑ-JÔ-JÑ"KÔ"KÑLÔLˆØŒ>˜AÒÐÝœ9 \°T´^ÈdÌmÐ\Ñ\Ô\ˆLØÐr?   ©F)Ú__name__Ú
__module__Ú__qualname__Úintr;   Úboolr0   r   r	   rG   rL   rC   r_   ÚunusedrT   Ú_overload_methodrX   Ú__classcell__©r=   s   @r>   r   r      s�  ø€ € € € € àrwð1ð 1Ø"%ð1Ø47ð1ØBEð1ØRWð1Økoð1à	ð1ð 1ð 1ð 1ð 1ð 1ð! $ v¤,ð !°6ð !ð !ð !ð !ð t¨F¤|ð ¸ð ð ð ð ð „YÔðC°°V´ð CÀð Cð Cð Cñ ÔðCð „YÔð˜T &œ\ð ¨fð ð ð ñ  Ôðð „YÔð˜Vð ¨ð ð ð ñ  Ôðð
˜Vð ¨ð ð ð ð ð ð ð ð r?   r   c                   óT   ‡ — e Zd ZdZ	 ddedededededed	d
fˆ fd„Zded	efd„Z	ˆ xZ
S )Ú_DenseBlockr
   FÚ
num_layersr   r!   r    r"   r#   r$   Nc                 óØ   •— t          ¦   «                              ¦   «          t          |¦  «        D ]8}t          |||z  z   ||||¬¦  «        }|                      d|dz   z  |¦  «         Œ9d S )N)r    r!   r"   r#   zdenselayer%dr   )r/   r0   Úranger   Ú
add_module)
r<   rr   r   r!   r    r"   r#   ÚiÚlayerr=   s
            €r>   r0   z_DenseBlock.__init__c   sŠ   ø€ õ 	‰Œ×ÒÑÔÐÝ�zÑ"Ô"ð 	=ð 	=ˆAÝØ" Q¨¡_Ñ4Ø'ØØ#Ø!1ðñ ô ˆEð �OŠO˜N¨a°!©eÑ4°eÑ<Ô<Ð<Ð<ð	=ð 	=r?   Úinit_featuresc                 ó¦   — |g}|                       ¦   «         D ]%\  }} ||¦  «        }|                     |¦  «         Œ&t          j        |d¦  «        S rB   )ÚitemsÚappendrC   rD   )r<   rx   ÚfeaturesÚnamerw   re   s         r>   rX   z_DenseBlock.forwardw   sX   € Ø!�?ˆØŸ:š:™<œ<ð 	*ð 	*‰KˆD�%Ø ˜5 ™?œ?ˆLØ�OŠO˜LÑ)Ô)Ð)Ð)ÝŒy˜ 1Ñ%Ô%Ð%r?   rf   )rg   rh   ri   Ú_versionrj   r;   rk   r0   r	   rX   rn   ro   s   @r>   rq   rq   `   s²   ø€ € € € € Ø€Hð "'ð=ð =àð=ð  ð=ð ð	=ð
 ð=ð ð=ð ð=ð 
ð=ð =ð =ð =ð =ð =ð(& Vð &°ð &ð &ð &ð &ð &ð &ð &ð &r?   rq   c                   ó,   ‡ — e Zd Zdededdfˆ fd„Zˆ xZS )Ú_Transitionr   Únum_output_featuresr$   Nc                 ó   •— t          ¦   «                              ¦   «          t          j        |¦  «        | _        t          j        d¬¦  «        | _        t          j        ||ddd¬¦  «        | _        t          j	        dd¬¦  «        | _
        d S )NTr&   r   Fr(   r
   )r)   r*   )r/   r0   r1   r2   Únormr4   Úrelur6   ÚconvÚ	AvgPool2dÚpool)r<   r   r�   r=   s      €r>   r0   z_Transition.__init__€   sz   ø€ Ý‰Œ×ÒÑÔÐÝ”NÐ#5Ñ6Ô6ˆŒ	Ý”G DÐ)Ñ)Ô)ˆŒ	Ý”IÐ0Ð2EÐSTÐ]^ÐejÐkÑkÔkˆŒ	Ý”L¨Q°qÐ9Ñ9Ô9ˆŒ	ˆ	ˆ	r?   )rg   rh   ri   rj   r0   rn   ro   s   @r>   r€   r€      sR   ø€ € € € € ð:¨3ð :ÀSð :ÈTð :ð :ð :ð :ð :ð :ð :ð :ð :ð :r?   r€   c                   óx   ‡ — e Zd ZdZ	 	 	 	 	 	 	 dd	ed
eeeeef         dedededededdfˆ fd„Zde	de	fd„Z
ˆ xZS )r   aK  Densenet-BC model class, based on
    `"Densely Connected Convolutional Networks" <https://arxiv.org/pdf/1608.06993.pdf>`_.

    Args:
        growth_rate (int) - how many filters to add each layer (`k` in paper)
        block_config (list of 4 ints) - how many layers in each pooling block
        num_init_features (int) - the number of filters to learn in the first convolution layer
        bn_size (int) - multiplicative factor for number of bottle neck layers
          (i.e. bn_size * k features in the bottleneck layer)
        drop_rate (float) - dropout rate after each dense layer
        num_classes (int) - number of classification classes
        memory_efficient (bool) - If True, uses checkpointing. Much more memory efficient,
          but slower. Default: *False*. See `"paper" <https://arxiv.org/pdf/1707.06990.pdf>`_.
    é    ©é   é   é   é   é@   é   r   éè  Fr    Úblock_configÚnum_init_featuresr!   r"   Únum_classesr#   r$   Nc                 ó:  •— t          ¦   «                              ¦   «          t          | ¦  «         t          j        t          dt          j        d|dddd¬¦  «        fdt          j        |¦  «        fdt          j        d	¬
¦  «        fdt          j	        ddd¬¦  «        fg¦  «        ¦  «        | _
        |}t          |¦  «        D ]“\  }	}
t          |
|||||¬¦  «        }| j
                             d|	dz   z  |¦  «         ||
|z  z   }|	t          |¦  «        dz
  k    r:t          ||dz  ¬¦  «        }| j
                             d|	dz   z  |¦  «         |dz  }Œ”| j
                             dt          j        |¦  «        ¦  «         t          j        ||¦  «        | _        |                      ¦   «         D ]å}t'          |t          j        ¦  «        r%t          j                             |j        ¦  «         ŒAt'          |t          j        ¦  «        rKt          j                             |j        d¦  «         t          j                             |j        d¦  «         Œ¦t'          |t          j        ¦  «        r%t          j                             |j        d¦  «         Œæd S )NÚconv0r,   é   r
   Fr-   Únorm0Úrelu0Tr&   Úpool0r   )r)   r*   r.   )rr   r   r!   r    r"   r#   zdenseblock%d)r   r�   ztransition%dÚnorm5r   )r/   r0   r   r1   Ú
Sequentialr   r6   r2   r4   Ú	MaxPool2dr|   Ú	enumeraterq   ru   Úlenr€   ÚLinearÚ
classifierÚmodulesr^   ÚinitÚkaiming_normal_ÚweightÚ	constant_r+   )r<   r    r’   r“   r!   r"   r”   r#   Únum_featuresrv   rr   ÚblockÚtransÚmr=   s                 €r>   r0   zDenseNet.__init__˜   s�  ø€ õ 	‰Œ×ÒÑÔÐÝ˜DÑ!Ô!Ð!õ œÝà�bœi¨Ð+<È!ÐTUÐ_`ÐglÐmÑmÔmÐnØ�bœnÐ->Ñ?Ô?Ð@Ø�bœg¨dÐ3Ñ3Ô3Ð4Ø�bœl°qÀÈAÐNÑNÔNÐOð	ñô ñ	
ô 	
ˆŒð )ˆÝ& |Ñ4Ô4ð 	1ð 	1‰MˆAˆzÝØ%Ø#/ØØ'Ø#Ø!1ðñ ô ˆEð ŒM×$Ò$ ^°q¸1±uÑ%=¸uÑEÔEÐEØ'¨*°{Ñ*BÑBˆLØ•C˜Ñ%Ô%¨Ñ)Ò)Ð)Ý#°|ÐYeÐijÑYjÐkÑkÔk�Ø”×(Ò(¨¸1¸q¹5Ñ)AÀ5ÑIÔIÐIØ+¨qÑ0�øð 	Œ× Ò  ­"¬.¸Ñ*FÔ*FÑGÔGÐGõ œ) L°+Ñ>Ô>ˆŒð —’‘”ð 	-ð 	-ˆAÝ˜!�RœYÑ'Ô'ð -Ý”×'Ò'¨¬Ñ1Ô1Ð1Ð1Ý˜A�rœ~Ñ.Ô.ð -Ý”×!Ò! !¤(¨AÑ.Ô.Ð.Ý”×!Ò! !¤&¨!Ñ,Ô,Ð,Ð,Ý˜A�rœyÑ)Ô)ð -Ý”×!Ò! !¤&¨!Ñ,Ô,Ð,øð	-ð 	-r?   Úxc                 óÚ   — |                       |¦  «        }t          j        |d¬¦  «        }t          j        |d¦  «        }t	          j        |d¦  «        }|                      |¦  «        }|S )NTr&   )r   r   r   )r|   rb   r„   Úadaptive_avg_pool2drC   Úflattenr¡   )r<   r«   r|   Úouts       r>   rX   zDenseNet.forwardÔ   s`   € Ø—=’= Ñ#Ô#ˆÝŒf�X tÐ,Ñ,Ô,ˆÝÔ# C¨Ñ0Ô0ˆÝŒm˜C Ñ#Ô#ˆØ�oŠo˜cÑ"Ô"ˆØˆ
r?   )r‰   rŠ   r�   r�   r   r‘   F)rg   rh   ri   Ú__doc__rj   r   r;   rk   r0   r	   rX   rn   ro   s   @r>   r   r   ˆ   sâ   ø€ € € € € ðð ð" Ø2AØ!#ØØØØ!&ð:-ð :-àð:-ð ˜C  c¨3Ð.Ô/ð:-ð ð	:-ð
 ð:-ð ð:-ð ð:-ð ð:-ð 
ð:-ð :-ð :-ð :-ð :-ð :-ðx˜ð  Fð ð ð ð ð ð ð ð r?   r   ÚmodelÚweightsÚprogressr$   c                 ón  — t          j        d¦  «        }|                     |d¬¦  «        }t          |                     ¦   «         ¦  «        D ]R}|                     |¦  «        }|r9|                     d¦  «        |                     d¦  «        z   }||         ||<   ||= ŒS|                      |¦  «         d S )Nz]^(.*denselayer\d+\.(?:norm|relu|conv))\.((?:[12])\.(?:weight|bias|running_mean|running_var))$T)r³   Ú
check_hashr   r
   )ÚreÚcompileÚget_state_dictÚlistÚkeysÚmatchÚgroupÚload_state_dict)r±   r²   r³   ÚpatternÚ
state_dictÚkeyÚresÚnew_keys           r>   Ú_load_state_dictrÃ   Ý   sº   € õ
 ŒjØhñô €Gð ×'Ò'°ÀdÐ'ÑKÔK€JÝ�J—O’OÑ%Ô%Ñ&Ô&ð  ð  ˆØ�mŠm˜CÑ Ô ˆØð 	 Ø—i’i ‘l”l S§Y¢Y¨q¡\¤\Ñ1ˆGØ",¨S¤/ˆJ�wÑØ˜3�øØ	×Ò˜*Ñ%Ô%Ð%Ð%Ð%r?   r    r’   r“   Úkwargsc                 ó¢   — |�)t          |dt          |j        d         ¦  «        ¦  «         t          | ||fi |¤Ž}|�t	          |||¬¦  «         |S )Nr”   Ú
categories)r±   r²   r³   )r   rŸ   Úmetar   rÃ   )r    r’   r“   r²   r³   rÄ   r±   s          r>   Ú	_densenetrÈ   ð   se   € ð ÐÝ˜f mµS¸¼ÀlÔ9SÑ5TÔ5TÑUÔUÐUå�[ ,Ð0AÐLÐLÀVÐLÐL€EàÐÝ˜u¨gÀÐIÑIÔIÐIà€Lr?   )é   rÉ   z*https://github.com/pytorch/vision/pull/116z'These weights are ported from LuaTorch.)Úmin_sizerÆ   ÚrecipeÚ_docsc            
       ó`   — e Zd Z ed eed¬¦  «        i e¥dddddœid	d
dœ¥¬¦  «        ZeZdS )r   z<https://download.pytorch.org/models/densenet121-a639ec97.pthéà   ©Ú	crop_sizeih¿y úImageNet-1Kg²�ï§Æ›R@g‘í|?5þV@©zacc@1zacc@5gyé&1¬@g¸…ëQØ>@©Ú
num_paramsÚ_metricsÚ_opsÚ
_file_size©ÚurlÚ
transformsrÇ   N©	rg   rh   ri   r   r   r   Ú_COMMON_METAÚIMAGENET1K_V1ÚDEFAULTrV   r?   r>   r   r     s€   € € € € € Ø�GØJØ�7Ð.¸#Ð>Ñ>Ô>ð
Øð
à!àØ#Ø#ð ð  ðð Ø ð
ð 
ð 
ðñ ô €Mð  €G€G€Gr?   r   c            
       ó`   — e Zd Z ed eed¬¦  «        i e¥dddddœid	d
dœ¥¬¦  «        ZeZdS )r   z<https://download.pytorch.org/models/densenet161-8d451a50.pthrÎ   rÏ   i(£µrÑ   gF¶óýÔHS@g¤p=
×cW@rÒ   g¶óýÔxé@gV-²�—[@rÓ   rØ   NrÛ   rV   r?   r>   r   r     s€   € € € € € Ø�GØJØ�7Ð.¸#Ð>Ñ>Ô>ð
Øð
à"àØ#Ø#ð ð  ðð Ø!ð
ð 
ð 
ðñ ô €Mð  €G€G€Gr?   r   c            
       ó`   — e Zd Z ed eed¬¦  «        i e¥dddddœid	d
dœ¥¬¦  «        ZeZdS )r   z<https://download.pytorch.org/models/densenet169-b2777c0a.pthrÎ   rÏ   ihç× rÑ   gfffffæR@gÝ$�•3W@rÒ   gáz®Gá
@g´Èv¾ŸZK@rÓ   rØ   NrÛ   rV   r?   r>   r   r   3  s€   € € € € € Ø�GØJØ�7Ð.¸#Ð>Ñ>Ô>ð
Øð
à"àØ#Ø#ð ð  ðð Ø ð
ð 
ð 
ðñ ô €Mð  €G€G€Gr?   r   c            
       ó`   — e Zd Z ed eed¬¦  «        i e¥dddddœid	d
dœ¥¬¦  «        ZeZdS )r   z<https://download.pytorch.org/models/densenet201-c1103571.pthrÎ   rÏ   ihc1rÑ   gÓMbX9S@gHáz®WW@rÒ   gD‹lçû)@gZd;ßWS@rÓ   rØ   NrÛ   rV   r?   r>   r   r   G  s€   € € € € € Ø�GØJØ�7Ð.¸#Ð>Ñ>Ô>ð
Øð
à"àØ#Ø#ð ð  ðð Ø ð
ð 
ð 
ðñ ô €Mð  €G€G€Gr?   r   Ú
pretrained)r²   T)r²   r³   c                 óX   — t                                | ¦  «        } t          ddd| |fi |¤ŽS )a{  Densenet-121 model from
    `Densely Connected Convolutional Networks <https://arxiv.org/abs/1608.06993>`_.

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

    .. autoclass:: torchvision.models.DenseNet121_Weights
        :members:
    r‰   rŠ   r�   )r   ÚverifyrÈ   ©r²   r³   rÄ   s      r>   r   r   [  ó5   € õ* "×(Ò(¨Ñ1Ô1€Gå�R˜¨"¨g°xÐJÐJÀ6ÐJÐJÐJr?   c                 óX   — t                                | ¦  «        } t          ddd| |fi |¤ŽS )a{  Densenet-161 model from
    `Densely Connected Convolutional Networks <https://arxiv.org/abs/1608.06993>`_.

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

    .. autoclass:: torchvision.models.DenseNet161_Weights
        :members:
    é0   )r‹   rŒ   é$   r�   é`   )r   rä   rÈ   rå   s      r>   r   r   u  ræ   r?   c                 óX   — t                                | ¦  «        } t          ddd| |fi |¤ŽS )a{  Densenet-169 model from
    `Densely Connected Convolutional Networks <https://arxiv.org/abs/1608.06993>`_.

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

    .. autoclass:: torchvision.models.DenseNet169_Weights
        :members:
    r‰   )r‹   rŒ   r‰   r‰   r�   )r   rä   rÈ   rå   s      r>   r   r   �  ræ   r?   c                 óX   — t                                | ¦  «        } t          ddd| |fi |¤ŽS )a{  Densenet-201 model from
    `Densely Connected Convolutional Networks <https://arxiv.org/abs/1608.06993>`_.

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

    .. autoclass:: torchvision.models.DenseNet201_Weights
        :members:
    r‰   )r‹   rŒ   rè   r‰   r�   )r   rä   rÈ   rå   s      r>   r   r   ©  ræ   r?   )7r¶   Úcollectionsr   Ú	functoolsr   Útypingr   r   r   r   rC   Útorch.nnr1   Útorch.nn.functionalÚ
functionalrb   Útorch.utils.checkpointÚutilsrS   rR   r	   Útransforms._presetsr   r   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   Ú__all__ÚModuler   Ú
ModuleDictrq   rœ   r€   r   rk   rÃ   rj   rÈ   rÜ   r   r   r   r   rÝ   r   r   r   r   rV   r?   r>   ú<module>rü      s‚  ðØ 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bð
ð 
ð 
€ð>ð >ð >ð >ð >�"”)ñ >ô >ð >ðB&ð &ð &ð &ð &�"”-ñ &ô &ð &ð>:ð :ð :ð :ð :�"”-ñ :ô :ð :ðRð Rð Rð Rð RˆrŒyñ Rô Rð Rðj&˜BœIð &°ð &Àtð &ÐPTð &ð &ð &ð &ð&Øðà˜˜S # sÐ*Ô+ðð ðð �kÔ"ð	ð
 ðð ðð ðð ð ð ð( Ø&Ø:Ø:ð	ð €ðð ð ð ð ˜+ñ ô ð ð(ð ð ð ð ˜+ñ ô ð ð(ð ð ð ð ˜+ñ ô ð ð(ð ð ð ð ˜+ñ ô ð ð( €ÑÔØÐ ,Ð0CÔ0QÐ!RÐSÑSÔSØ<@ÐSWð Kð Kð K˜HÐ%8Ô9ð KÈDð KÐcfð KÐksð Kð Kð Kñ TÔSñ ÔðKð0 €ÑÔØÐ ,Ð0CÔ0QÐ!RÐSÑSÔSØ<@ÐSWð Kð Kð K˜HÐ%8Ô9ð KÈDð KÐcfð KÐksð Kð Kð Kñ TÔSñ ÔðKð0 €ÑÔØÐ ,Ð0CÔ0QÐ!RÐSÑSÔSØ<@ÐSWð Kð Kð K˜HÐ%8Ô9ð KÈDð KÐcfð KÐksð Kð Kð Kñ TÔSñ ÔðKð0 €ÑÔØÐ ,Ð0CÔ0QÐ!RÐSÑSÔSØ<@ÐSWð Kð Kð K˜HÐ%8Ô9ð KÈDð KÐcfð KÐksð Kð Kð Kñ TÔSñ ÔðKð Kð Kr?   