CoolFace
Apppublic

Mjolnir65/FasterRCNN

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
backbone_utils.cpython-311.pyc34 linesDownload Raw Back to __pycache__
1�

2���g�����ddlZddlmZmZmZmZmZddlmZm	Z	ddl3mZddl
mZmZmZddlmZddlmZmZddlmZmZGd	�d4ej��Zedd�f�
��ejdddd�dedeededejfdedeeedeedefd���Z			d dejdedeeedeedeedejfdefd�Z de!deedededef5d�Z"dS)!�N)�Callable�Dict�List�Optional�Union)�nn�Tensor)�misc)�
ExtraFPNBlock�FeaturePyramidNetwork�LastLevelMaxPool)�resnet)�_get_enum_from_fn�WeightsEnum)�handle_legacy_interface�IntermediateLayerGetterc���eZdZ		d
dejdeeefdeedede	e6de	edejfd	df�fd7�
Zde
d	eee
ffd�Z�xZS)�BackboneWithFPNN�backbone�
return_layers�in_channels_list�out_channels�extra_blocks�8norm_layer.�returnc����t�����|�t��}t||���|_t||||���|_||_dS)N)r)rrrr)�super�__init__r
r�bodyr�fpnr)�selfrrrrrr�	__class__s       ��W/home/gaurav/Documents/assignment-3-gaurav-behera/q1/modify/detection/backbone_utils.pyrzBackboneWithFPN.__init__sr���	����������+�-�-�L�+�H�M�R�R�R��	�(�-�%�%�!�	9�10�11���)������xc�Z�|�|��}|�|��}|S)N)rr )r!r%s  r#�forwardzBackboneWithFPN.forward%s%���I�I�a�L�L���H�H�Q�K�K���r$)NN)�__name__�12__module__�__qualname__r�Moduler�strr�intrrrrr	r'�
__classcell__)r"s@r#rr
s��������15�9=�)�)��)�)��C��H�~�)��s�)�	)�13�)��}�-�
)��X�c�2�9�n�5�6�)�14�)�)�)�)�)�)�.���D��f��$5��������r$r�15pretrainedc�X�ttj|d��dS)N�
backbone_name�
IMAGENET1K_V1)rr�__dict__)�kwargss r#�<lambda>r5.s!��(�����9P�)Q�R�R�Sb�c�r$)�weights�)r�trainable_layers�returned_layersrr1r6r.r8r9rrc�^�tj|||���}t||||��S)N)r6r)rr3�_resnet_fpn_extractor)r1r6rr8r9rrs       r#�resnet_fpn_backboner<+s2�� ��}�-�g�*�U�U�U�H� ��+;�_�l�[�[�[r$rc�P�16��|dks|dkrtd|�����gd�d|�}|dkr|�d��|���D]5\�}t�fd�|D����r|�d���6|�t��}|�gd�}t
|��dkst|��dkrtd	|�����d17�t|��D��}|j	dz�18�19fd�|D��}d
}	t||||	||���S)Nr�z3Trainable layers should be in the range [0,5], got )�layer4�layer3�layer2�layer1�conv1�bn1c�<��g|]}��|����S�)�20startswith)�.0�layer�names  �r#�21<listcomp>z)_resnet_fpn_extractor.<locals>.<listcomp>Ns(���H�H�H�u�D�O�O�E�*�*�*�H�H�Hr$F)��r7�z6Each returned layer should be in the range [1,4]. Got c�:�i|]\}}d|��t|����S)rI)r,)rH�v�ks   r#�22<dictcomp>z)_resnet_fpn_extractor.<locals>.<dictcomp>Xs*��P�P�P�T�Q��[�Q�[�[�#�a�&�&�P�P�Pr$�c�&��g|]
}�d|dz23zz��S)rMrLrF)rH�i�in_channels_stage2s  �r#rKz)_resnet_fpn_extractor.<locals>.<listcomp>[s'���S�S�S�a�*�Q�1�q�5�\�9�S�S�Sr$�)rr)�24ValueError�append�named_parameters�all�requires_grad_r
�min�max�	enumerate�inplanesr)rr8r9rr�layers_to_train�	parameterrrrrVrJs          @@r#r;r;?s������!���/�!�3�3��a�O_�a�a�b�b�b�G�G�G�HY�IY�HY�Z�O��1������u�%�%�%�#�4�4�6�6�,�,���i��H�H�H�H��H�H�H�I�I�	,��$�$�U�+�+�+����'�)�)����&�,�,��25�?���q� � �C��$8�$8�A�$=�$=��c�Ra�c�c�d�d�d�P�P�Y��5O�5O�P�P�P�M�!�*�a�/��S�S�S�S�?�S�S�S���L���-�!1�<�l�gq����r$�26is_trained�trainable_backbone_layers�	max_value�
default_valuec��|s|�tjd|�d���|}|�|}|dks||krtd|�d|�d����|S)Nz�Changing trainable_backbone_layers has no effect if neither pretrained nor pretrained_backbone have been set to True, falling back to trainable_backbone_layers=z! so that all layers are trainablerz4Trainable backbone layers should be in the range [0,z], got � )�warnings�warnrX)rcrdrerfs    r#�_validate_trainable_layersrkbs����.�$�0��M�j�=F�j�j�j�
�
�
�27%.�!�!�(�$1�!� �1�$�$�(A�I�(M�(M��q�9�q�q�Un�q�q�q�28�29�	30�%�$r$)NNN)#ri�typingrrrrr�torchrr	�torchvision.opsr31�misc_nn_ops�'torchvision.ops.feature_pyramid_networkrrr
�torchvision.modelsr�torchvision.models._apirr�torchvision.models._utilsrrr+r�FrozenBatchNorm2dr,r-r<�ResNetr;�boolrkrFr$r#�<module>rws�������8�8�8�8�8�8�8�8�8�8�8�8�8�8���������/�/�/�/�/�/�j�j�j�j�j�j�j�j�j�j�%�%�%�%�%�%�B�B�B�B�B�B�B�B�V�V�V�V�V�V�V�V������b�i����<���c�c�
����,7�+H��+/�,0�\�\�\��\��k�
"�\���b�i��(�	\�32�\��d�3�i�(�
\��=�)�\��\�\�\�
��\�",0�,0�59� � ��m� �� ��d�3�i�(� ��=�)�	 �33��#�r�y�.�1�2� ��
 � � � �F%��%�'��}�%��%��	%�34	�%�%�%�%�%�%r$