CoolFace
Apppublic

wolf6/GARBAGE

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

27�,hX���$�ddlZddlZddlZddlmZej�d��eje��Z	ddl3Z4ddlTddlTddl
mZddlmZmZmZddlmZmZmZmZmZmZmZddlmZ	ddlZn
#e$rdZYnwxYwGd	�d5ej ��Z!Gd�dej ��Z"Gd
�dej ��Z#Gd�dej ��Z$Gd�dej ��Z%Gd�dej ��Z&d�Z'edk�rej(��Z)e)�*de+dd���e)�*ddd���e)�*dd d!�"��e)�,��Z-ee-j.��e-_.e��ee-j/��Z/e&e-j.���0e/��Z1e1�2��e-j3r7e6j4d#d$d%d%���0e/��Z5e1e5d&�'��Z6dSdSdS)(�N)�deepcopyz./)�*)�check_anchor_order)�make_divisible�7check_file�set_logging)�time_synchronized�fuse_conv_and_bn�8model_info�	scale_img�initialize_weights�
select_device�	copy_attr)�9SigmoidBinc�X��eZdZdZdZdZdZdZd10�fd�	Zd�Z	e11dd���Zd	�Z�xZ
S)�DetectNF�P�c����tt������|�_|dz�_t|���_t|d��dz�_tj	d��g�jz�_12tj|������
�jdd��}��d|����d|����
�jddddd����t ��fd�|D�����_dS)	N�r��������anchors�anchor_gridc3�j�K�|]-}t�|�j�jzd��V��.dS�rN��nn�Conv2d�no�na��.0�x�selfs  ��F/content/drive/MyDrive/garbage.v1i.yolov7pytorch/yolov7/models/yolo.py�	<genexpr>z"Detect.__init__.<locals>.<genexpr>(�<�����N�N�a�r�y�y��D�G�d�g�,=�q�A�A�N�N�N�N�N�N�)�superr�__init__�ncr!�len�nlr"�torch�zeros�grid�tensor�float�view�register_buffer�cloner�13ModuleList�m�r&r-r�ch�a�	__class__s`    �r'r,zDetect.__init__s����
�f�d���$�$�&�&�&�����q�&����g�,�,����g�a�j�/�/�Q�&����[��^�^�$�t�w�.��	��L��!�!�'�'�)�)�.�.�t�w��A�>�>�����Y��*�*�*����]�A�G�G�I�I�N�N�4�7�A�r�1�a�QR�,S�,S�T�T�T����N�N�N�N�2�N�N�N�N�N����r*c���g}|xj|jzc_t|j��D�]L}|j|||��||<||j\}}}}||�||j|j||���	ddddd���14��||<|j�s�|j|jdd�||jdd�kr<|�||���
||j��|j|<||���}t j���s]|ddd�fdzdz15|j|z|j|z|ddd�f<|ddd�fdzdz|j|z|ddd�f<n�|�dd|jdzfd��\}	}16}|	d|j|zz|j||j|dz17zz}	|18dzd|j|jzz}19t!j|	|20|fd��}|�|�|d	|j������N|jr|}nq|jrt!j|d��}nT|jr|�|��}|f}n4|jrt!j|d��}nt!j|d��|f}|S�21Nrr��r.�@��?r��training�export�ranger/r9�shaper5r"r!�permute�22contiguousr2�23_make_grid�to�device�sigmoidr0�onnx�is_in_onnx_export�strider�splitr-�data�cat�append�end2end�include_nms�convert�concat�
r&r%�z�i�bs�_�ny�nx�y�xy�wh�conf�outs
             r'�forwardzDetect.forward*s������
�
���$�
�
��t�w���	2�	2�A��4�6�!�9�Q�q�T�?�?�A�a�D��a�D�J�M�B��2�r��Q�4�9�9�R���$�'�2�r�:�:�B�B�1�a��A�q�Q�Q�\�\�^�^�A�a�D��=�
2��9�Q�<�%�a��c�*�a��d�j��1��o�=�=�#'�?�?�2�r�#:�#:�#=�#=�a��d�k�#J�#J�D�I�a�L��a�D�L�L�N�N���z�3�3�5�5�5�#$�S�!�A�#�X�;��#3�c�#9�D�I�a�L�#H�D�K�XY�N�"Z�A�c�1�Q�3�h�K�#$�S�!�A�#�X�;��?�q�"8�4�;K�A�;N�"N�A�c�1�Q�3�h�K�K�#$�7�7�A�q�$�'�A�+�+>��#B�#B�L�B��D��r�D�K��N�2�3�t�{�1�~���ST��X[�I[�7\�]�B��q��A��(8��(;�(@�$@�A�B��	�2�r�4�.�!�4�4�A��������B���0�0�1�1�1���=�24	'��C�C�
�\�	'��)�A�q�/�/�C�C�
�
�	'����Q���A��%�C�C�
�[�	'��)�A�q�/�/�C�C��9�Q��?�?�A�&�C��25r*�c���tjtj|��tj|��g��\}}tj||fd���dd||df�����S�Nrr�r0�meshgrid�arange�stackr5r4�r`r_�yv�xvs    r'rKzDetect._make_gridO�i������b�!1�!1�5�<��3C�3C� D�E�E���B��{�B��8�Q�'�'�,�,�a��B��A�->�?�?�E�E�G�G�Gr*c��tj|d��}|dd�dd�dd�f}|dd�dd�dd�f}|dd�dd�dd�f}||z}tjgd�gd�gd�gd�gtj|j���}||z}||fS�	NrrAr)rrrr)rrrr)��rrCr)rrtrrC)�dtyperM�r0rTr3�float32rM�r&r[�boxrd�score�convert_matrixs      r'rXzDetect.convertT�����I�a��O�O������1�1�1�b�q�b��k������A�A�A�q��s��|���!�!�!�Q�Q�Q����(���
��
����|�|�|�\�\�\�CT�CT�CT�Vg�Vg�Vg�&h�16��23�(�<�<�<��	�~����U�|�r*�rrr�rgrg)�__name__�26__module__�__qualname__rQrFrVrWrYr,rf�staticmethodrKrX�
__classcell__�r=s@r'rrs��������
�F�
�F��G��K�
�F�27O�28O�29O�30O�31O�32O�#�#�#�J�H�H�H��\�H�33�34�35�36�37�38�39r*rc�d��eZdZdZdZdZdZdZd�fd�	Zd�Z	d�Z40d�Zed
d41���Z
d�Z�xZS)�IDetectNFrrc�T���tt������|�_|dz�_t|���_t|d��dz�_tj	d��g�jz�_42tj|������
�jdd��}��d|����d|����
�jddddd����t ��fd�|D�����_t �d	�|D�����_t ��fd43�|D�����_dS)Nrrrrrrrc3�j�K�|]-}t�|�j�jzd��V��.dSrrr#s  �r'r(z#IDetect.__init__.<locals>.<genexpr>rr)r*c3�4K�|]}t|��V��dS�N��	ImplicitA�r$r%s  r'r(z#IDetect.__init__.<locals>.<genexpr>t�(����9�9��	�!���9�9�9�9�9�9r*c3�P�K�|] }t�j�jz��V��!dSr���	ImplicitMr!r"�r$r^r&s  �r'r(z#IDetect.__init__.<locals>.<genexpr>u�4�����I�I��	�$�'�D�G�*;� <� <�I�I�I�I�I�Ir*)r+r�r,r-r!r.r/r"r0r1r2r3r4r5r6r7rr8r9�ia�imr:s`    �r'r,zIDetect.__init__hs`����
�g�t���%�%�'�'�'�����q�&����g�,�,����g�a�j�/�/�Q�&����[��^�^�$�t�w�.��	��L��!�!�'�'�)�)�.�.�t�w��A�>�>�����Y��*�*�*����]�A�G�G�I�I�N�N�4�7�A�r�1�a�QR�,S�,S�T�T�T����N�N�N�N�2�N�N�N�N�N����-�-�9�9�b�9�9�9�9�9����-�-�I�I�I�I�b�I�I�I�I�I����r*c�H�g}|xj|jzc_t|j��D�]�}|j||j|||����||<|j|||��||<||j\}}}}||�||j	|j44||���ddddd�����||<|j�s|j
|jdd�||jdd�kr<|�||���||j��|j
|<||���}|ddd�fdzdz45|j
|z|j|z|ddd�f<|ddd�fdzdz|j|z|ddd�f<|�|�|d	|j46�������|jr|nt+j|d��|fSr?)rErFrGr/r9r�r�rHr5r"r!rIrJr2rKrLrMrNrQrrUr0rT)	r&r%r[r\r]r^r_r`ras	         r'rfzIDetect.forwardws������
�
���$�
�
��t�w���
	2�
	2�A��4�6�!�9�Z�T�W�Q�Z��!��-�-�.�.�A�a�D��4�7�1�:�a��d�#�#�A�a�D��a�D�J�M�B��2�r��Q�4�9�9�R���$�'�2�r�:�:�B�B�1�a��A�q�Q�Q�\�\�^�^�A�a�D��=�
2��9�Q�<�%�a��c�*�a��d�j��1��o�=�=�#'�?�?�2�r�#:�#:�#=�#=�a��d�k�#J�#J�D�I�a�L��a�D�L�L�N�N�� ��a��c��{�R�/�#�5��	�!��D���TU��V��#�q��s�(�� ��a��c��{�Q��1�4�t�7G��7J�J��#�q��s�(���������B���0�0�1�1�1���M�;�q�q��	�!�Q����';�;r*c���g}|xj|jzc_t|j��D�]L}|j|||��||<||j\}}}}||�||j|j||���	ddddd���47��||<|j�s�|j|jdd�||jdd�kr<|�||���
||j��|j|<||���}t j���s]|ddd�fdzdz48|j|z|j|z|ddd�f<|ddd�fdzdz|j|z|ddd�f<n�|�dd|jdzfd��\}	}49}|	d|j|zz|j||j|dz50zz}	|51dzd|j|jzz}52t!j|	|53|fd��}|�|�|d	|j������N|jr|}nq|jrt!j|d��}nT|jr|�|��}|f}n4|jrt!j|d��}nt!j|d��|f}|Sr?rDrZs
             r'�fuseforwardzIDetect.fuseforward�s������
�
���$�
�
��t�w���	2�	2�A��4�6�!�9�Q�q�T�?�?�A�a�D��a�D�J�M�B��2�r��Q�4�9�9�R���$�'�2�r�:�:�B�B�1�a��A�q�Q�Q�\�\�^�^�A�a�D��=�

2��9�Q�<�%�a��c�*�a��d�j��1��o�=�=�#'�?�?�2�r�#:�#:�#=�#=�a��d�k�#J�#J�D�I�a�L��a�D�L�L�N�N���z�3�3�5�5�5�#$�S�!�A�#�X�;��#3�c�#9�D�I�a�L�#H�D�K�XY�N�"Z�A�c�1�Q�3�h�K�#$�S�!�A�#�X�;��?�q�"8�4�;K�A�;N�"N�A�c�1�Q�3�h�K�K�#$�7�7�A�q�$�'�A�+�+>��#B�#B�L�B��D��r�D�K��N�2�3�t�{�1�~���ST��X[�I[�7\�]�B��q��A��(8��(;�(@�$@�A�B��	�2�r�4�.�!�4�4�A��������B���0�0�1�1�1���=�54	'��C�C�
�\�	'��)�A�q�/�/�C�C�
�
�	'����Q���A��%�C�C�
�[�	'��)�A�q�/�/�C�C��9�Q��?�?�A�&�C��55r*c56�h�td��tt|j����D]�}|j|jj\}}}}|j|jj\}}}}|j|xjtj57|j|j�||��|j|j�||�����d��z
c_��tt|j����D]�}|j
|jj\}}}}|j|xj|j
|j�|��zc_|j|xj|j
|j�dd��zc_��dS)NzIDetect.fuserr��printrGr.r9�weightrHr��implicit�biasr0�matmul�reshape�squeezer��	transpose�r&r\�c1�c2r^�c1_�c2_s       r'�fusezIDetect.fuse�sv��
�n�����s�4�6�{�{�#�#�	|�	|�A���q�	�(�.�I�B�r�!�A��7�1�:�.�4�L�C��Q�q��F�1�I�N�N�e�l�4�6�!�9�+;�+C�+C�B�r�+J�+J�4�7�ST�:�K^�Kf�Kf�gj�kn�Ko�Ko�p�p�x�x�yz�{�{�{�N�N�N��s�4�6�{�{�#�#�	C�	C�A�����,�2�J�B�r�1�Q��F�1�I�N�N�d�g�a�j�1�9�9�"�=�=�=�N�N��F�1�I������58� 3� =� =�a�� B� B�B����	C�	Cr*rgc���tjtj|��tj|��g��\}}tj||fd���dd||df�����Srirjrns    r'rKzIDetect._make_grid�rqr*c��tj|d��}|dd�dd�dd�f}|dd�dd�dd�f}|dd�dd�dd�f}||z}tjgd�gd�gd�gd�gtj|j���}||z}||fSrsrvrxs      r'rXzIDetect.convert�r|r*r}r~�rr�r�rQrFrVrWrYr,rfr�r�r�rKrXr�r�s@r'r�r�as��������
�F�
�F��G��K�
�F�
J�
J�
J�
J�
J�
J�<�<�<�*$�$�$�LC�C�C��H�H�H��\�H�59�60�61�62�63�64�65r*r�c�F��eZdZdZdZd�fd�	Zd�Zedd66���Z�xZ	S)
�	IKeypointNFrr�Tc����tt������|�_|�_|�_|dz�_d�jz�_�j�jz�_t|���_67t|d��dz�_tj
d��g�j68z�_d�_tj|�������j69dd��}��d|����d	|�����j70ddddd����t*��fd71�|D�����_t*�d�|D�����_t*��fd�|D�����_�j�^�jr,t*��fd
�|D�����_n+t*��fd�|D�����_|�_dS)Nrr@rrrFrrrc3�j�K�|]-}t�|�j�jzd��V��.dSr)rr �no_detr"r#s  �r'r(z%IKeypoint.__init__.<locals>.<genexpr>�s<�����R�R�!�r�y�y��D�K�$�'�,A�1�E�E�R�R�R�R�R�Rr*c3�4K�|]}t|��V��dSr�r�r�s  r'r(z%IKeypoint.__init__.<locals>.<genexpr>�r�r*c3�P�K�|] }t�j�jz��V��!dSr�)r�r�r"r�s  �r'r(z%IKeypoint.__init__.<locals>.<genexpr>�s4�����M�M�Q�	�$�+���*?� @� @�M�M�M�M�M�Mr*c3���K�|]�}t�t||d���t||��t||d���t||��t||d���t||��t||d���t||��t||d���t||��t||d���t�|�j�jzd����V���dS)r@)�krN)r�72Sequential�DWConv�Convr �no_kptr"r#s  �r'r(z%IKeypoint.__init__.<locals>.<genexpr>�s�����+r�+r�jk��M�M�&��A��*;�*;�*;�T�!�A�Y�Y�*0��A��*;�*;�*;�T�!�Q�Z�Z�*0��A��*;�*;�*;�T�!�A�Y�Y�*0��A��*;�*;�*;�T�!�Q�Z�Z�*0��A��*;�*;�*;�T�!�Q�Z�Z�*0��A��*;�*;�*;�R�Y�Y�q�$�+�X\�X_�J_�ab�=c�=c�e�e�+r�+r�+r�+r�+r�+rr*c3�j�K�|]-}t�|�j�jzd��V��.dSr)rr r�r"r#s  �r'r(z%IKeypoint.__init__.<locals>.<genexpr>�s=�����*^�*^�VW�2�9�9�Q���d�g�8M�q�+Q�+Q�*^�*^�*^�*^�*^�*^r*)r+r�r,r-�nkpt�dw_conv_kptr�r�r!r.r/r"r0r1r2�	flip_testr3r4r5r6r7rr8r9r�r��m_kpt�inplace)	r&r-rr�r;r�r�r<r=s	`       �r'r,zIKeypoint.__init__�s#����
�i����'�'�)�)�)������	�&����!�V�����	�k����+�d�k�)����g�,�,����g�a�j�/�/�Q�&����[��^�^�$�t�w�.��	�����L��!�!�'�'�)�)�.�.�t�w��A�>�>�����Y��*�*�*����]�A�G�G�I�I�N�N�4�7�A�r�1�a�QR�,S�,S�T�T�T����R�R�R�R�r�R�R�R�R�R����-�-�9�9�b�9�9�9�9�9����-�-�M�M�M�M�"�M�M�M�M�M����9� ���	
_��]�]�+r�+r�+r�+r�oq�
+r�+r�+r�r�r��73�74� �]�]�*^�*^�*^�*^�[]�*^�*^�*^�^�^��75�����r*c�	�g}|xj|jzc_t|j��D�]�}|j�|jdkrH|j||j||j|||������||<nwtj	|j||j||j|||������|j76|||��fd���||<||j\}}}}||�||j
|j||���ddddd�����||<||ddd�f}||ddd�f}	|j�s |j|jdd�||jdd�kr<|�||���||j��|j|<|j|ddd�f}77|j|ddd�f}|jdkr||���}n|���}|j�rG|ddd�fd	zd78z79|j|z|j|z}
|ddd�fdzdz|j|�d|j
ddd��z}|jdkr�|	dddd�fd	zd80z81|82�ddddd��z|j|z|	dddd�f<|	dddd�fd	zd83z84|�ddddd��z|j|z|	dddd�f<|	dddd�f���|	dddd�f<tj	|
||ddd�f|	fd�
��}n�|ddd�fd	zd85z86|j|z|j|z}
|ddd�fdzdz|j|z}|jdkrR|ddd�fd	zd87z88|j|�dddd|jf��z|j|z|ddd�f<tj	|
||ddd�ffd��}|�|�|d|j�������|jr|ntj	|d��|fS)Nrr)�axisr@rAr.�rBrCr�r��dim)rErFrGr/r�r�r9r�r0rTr�rHr5r"r!rIrJr2rKrLrMrNr�rQr�repeatrU)r&r%r[r\r]r^r_r`�x_det�x_kpt�89kpt_grid_x�90kpt_grid_yrarbrcs               r'rfzIKeypoint.forward�s������
�
���$�
�
��t�w���1	2�1	2�A��y� �D�I�q�L�L�!�t�w�q�z�)�$�&��)�J�D�G�A�J�q��t�,<�,<�"=�"=�>�>��!����y�*�$�'�!�*�Y�T�V�A�Y�z�t�w�q�z�!�A�$�7G�7G�-H�-H�"I�"I�=�4�:�VW�=�YZ�[\�Y]�K^�K^�!_�fg�h�h�h��!���a�D�J�M�B��2�r��Q�4�9�9�R���$�'�2�r�:�:�B�B�1�a��A�q�Q�Q�\�\�^�^�A�a�D��a�D��b�q�b��M�E��a�D��a�b�b��M�E��=�&
2��9�Q�<�%�a��c�*�a��d�j��1��o�=�=�#'�?�?�2�r�#:�#:�#=�#=�a��d�k�#J�#J�D�I�a�L�!�Y�q�\�#�q��s�(�3�91�!�Y�q�\�#�q��s�(�3�92��9��>�>��!������A�A��
�
���A��<�<��C��1��H�+��*�S�0�4�9�Q�<�?�4�;�q�>�Q�B��C��1��H�+��/�a�/�$�2B�1�2E�2J�2J�1�d�g�WX�Z[�]^�2_�2_�_�B��y�A�~�~�,1�#�s�s��s�(�O�b�,@�3�,F��IZ�IZ�[\�]^�_`�ab�ce�If�If�,f�jn�ju�vw�jx�+x��c�1�4�a�4�i�(�,1�#�q�t�!�t�)�,<�r�,A�C�,G�*�J[�J[�\]�^_�`a�bc�df�Jg�Jg�,g�ko�kv�wx�ky�+y��c�1�4�a�4�i�(�,1��a�d��d��+;�+C�+C�+E�+E��c�1�4�a�4�i�(��	�2�r�1�S�!�"�"�W�:�u�"=�R�H�H�H�A�A��C��1��H�+��*�S�0�4�9�Q�<�?�4�;�q�>�Q�B��C��1��H�+��/�a�/�$�2B�1�2E�E�B��y�A�~�~�&'��Q�R�R��j�2�o��&;�d�i��l�>Q�>Q�ST�UV�WX�YZ�[_�[d�Re�>f�>f�&f�jn�ju�vw�jx�%x��#�q�r�r�'�93��	�2�r�1�S�!�"�"�W�:�"6��;�;�A��������B���0�0�1�1�1���M�;�q�q��	�!�Q����';�;r*rgc���tjtj|��tj|��g��\}}tj||fd���dd||df�����Srirjrns    r'rKzIKeypoint._make_grid1rqr*)rrr�rTFr~�94rr�r�rQrFr,rfr�rKr�r�s@r'r�r��s��������
�F�
�F� � � � � � �D7<�7<�7<�r�H�H�H��\�H�H�H�H�Hr*r�c�d��eZdZdZdZdZdZdZd�fd�	Zd�Z	d�Z95d�Zed
d96���Z
d�Z�xZS)�97IAuxDetectNFrrc����tt������|�_|dz�_t|���_t|d��dz�_tj	d��g�jz�_98tj|������
�jdd��}��d|����d|����
�jddddd����t ��fd�|d�j�D�����_t ��fd	�|�jd�D�����_t �d99�|d�j�D�����_t ��fd�|d�j�D�����_dS)Nrrrrrrrc3�j�K�|]-}t�|�j�jzd��V��.dSrrr#s  �r'r(z&IAuxDetect.__init__.<locals>.<genexpr>Hs<�����X�X�a�r�y�y��D�G�d�g�,=�q�A�A�X�X�X�X�X�Xr*c3�j�K�|]-}t�|�j�jzd��V��.dSrrr#s  �r'r(z&IAuxDetect.__init__.<locals>.<genexpr>Is<�����Y�Y�q��	�	�!�T�W�t�w�->�� B� B�Y�Y�Y�Y�Y�Yr*c3�4K�|]}t|��V��dSr�r�r�s  r'r(z&IAuxDetect.__init__.<locals>.<genexpr>Ks(����C�C��	�!���C�C�C�C�C�Cr*c3�P�K�|] }t�j�jz��V��!dSr�r�r�s  �r'r(z&IAuxDetect.__init__.<locals>.<genexpr>Ls4�����S�S��	�$�'�D�G�*;� <� <�S�S�S�S�S�Sr*)r+r�r,r-r!r.r/r"r0r1r2r3r4r5r6r7rr8r9�m2r�r�r:s`    �r'r,zIAuxDetect.__init__>s�����
�j�$���(�(�*�*�*�����q�&����g�,�,����g�a�j�/�/�Q�&����[��^�^�$�t�w�.��	��L��!�!�'�'�)�)�.�.�t�w��A�>�>�����Y��*�*�*����]�A�G�G�I�I�N�N�4�7�A�r�1�a�QR�,S�,S�T�T�T����X�X�X�X�2�h�t�w�h�<�X�X�X�X�X����-�-�Y�Y�Y�Y�B�t�w�x�x�L�Y�Y�Y�Y�Y����-�-�C�C�b��$�'��l�C�C�C�C�C����-�-�S�S�S�S�b��$�'��l�S�S�S�S�S����r*c���g}|xj|jzc_t|j��D�]}|j||j|||����||<|j|||��||<||j\}}}}||�||j	|j100||���ddddd�����||<|j
||||jz��|||jz<|||jz�||j	|j101||���ddddd�����|||jz<|j�s�|j|jdd�||jdd�kr<|�||���||j��|j|<||���}t&j���s]|ddd�fdzdz102|j|z|j|z|ddd�f<|ddd�fdzdz|j|z|ddd�f<n�|�dd|jdzfd��\}	}103}|	d|j|zz|j||j|dz104zz}	|105dzd|j|jzz}106t'j|	|107|fd��}|�|�|d	|j108������|jr|n#t'j|d��|d|j�fSr?)rErFrGr/r9r�r�rHr5r"r!rIrJr�r2rKrLrMrNr0rOrPrQrrRr-rSrTrU)r&r%r[r\r]r^r_r`rarbrcrds            r'rfzIAuxDetect.forwardNs/�����
�
���$�
�
��t�w���	2�	2�A��4�6�!�9�Z�T�W�Q�Z��!��-�-�.�.�A�a�D��4�7�1�:�a��d�#�#�A�a�D��a�D�J�M�B��2�r��Q�4�9�9�R���$�'�2�r�:�:�B�B�1�a��A�q�Q�Q�\�\�^�^�A�a�D�%�4�7�1�:�a��$�'�	�l�3�3�A�a���i�L��Q�t�w�Y�<�,�,�R���$�'�2�r�J�J�R�R�ST�VW�YZ�\]�_`�a�a�l�l�n�n�A�a���i�L��=�

2��9�Q�<�%�a��c�*�a��d�j��1��o�=�=�#'�?�?�2�r�#:�#:�#=�#=�a��d�k�#J�#J�D�I�a�L��a�D�L�L�N�N���z�3�3�5�5�5�#$�S�!�A�#�X�;��#3�c�#9�D�I�a�L�#H�D�K�XY�N�"Z�A�c�1�Q�3�h�K�#$�S�!�A�#�X�;��?�q�"8�4�;K�A�;N�"N�A�c�1�Q�3�h�K�K�#$�7�7�A�q�$�'�A�+�+>��#B�#B�L�B��D��r�D�K��N�2�3�t�{�1�~���ST��X[�I[�7\�]�B��q��A��(8��(;�(@�$@�A�B��	�2�r�4�.�!�4�4�A��������B���0�0�1�1�1���M�E�q�q��	�!�Q����8�D�G�8��'E�Er*c	���g}|xj|jzc_t|j��D�]7}|j|||��||<||j\}}}}||�||j|j||���	ddddd���109��||<|j�s�|j|jdd�||jdd�kr<|�||���
||j��|j|<||���}t j���s]|ddd�fdzdz110|j|z|j|z|ddd�f<|ddd�fdzdz|j|z|ddd�f<nu|ddd�fdzdz111|j|z|j|z}	|ddd�fdzdz|j|jz}112t!j|	|113|ddd�ffd	��}|�|�|d	|j������9|jr|}nq|jrt!j|d��}nT|jr|�|��}|f}n4|jrt!j|d��}nt!j|d��|f}|Sr?)rErFrGr/r9rHr5r"r!rIrJr2rKrLrMrNr0rOrPrQrrSrTrUrVrWrXrY)r&r%r[r\r]r^r_r`rarbrcres            r'r�zIAuxDetect.fuseforwardls������
�
���$�
�
��t�w���	2�	2�A��4�6�!�9�Q�q�T�?�?�A�a�D��a�D�J�M�B��2�r��Q�4�9�9�R���$�'�2�r�:�:�B�B�1�a��A�q�Q�Q�\�\�^�^�A�a�D��=�
2��9�Q�<�%�a��c�*�a��d�j��1��o�=�=�#'�?�?�2�r�#:�#:�#=�#=�a��d�k�#J�#J�D�I�a�L��a�D�L�L�N�N���z�3�3�5�5�<�#$�S�!�A�#�X�;��#3�c�#9�D�I�a�L�#H�D�K�XY�N�"Z�A�c�1�Q�3�h�K�#$�S�!�A�#�X�;��?�q�"8�4�;K�A�;N�"N�A�c�1�Q�3�h�K�K��C��1��H�+��*�S�0�4�9�Q�<�?�4�;�q�>�Q�B��C��1��H�+��/�a�/�$�2B�1�2E�2J�J�B��	�2�r�1�S�!�"�"�W�:�"6��;�;�A��������B���0�0�1�1�1���=�114	'��C�C�
�\�	'��)�A�q�/�/�C�C�
�
�	'����Q���A��%�C�C�
�[�	'��)�A�q�/�/�C�C��9�Q��?�?�A�&�C��115r*c116�h�td��tt|j����D]�}|j|jj\}}}}|j|jj\}}}}|j|xjtj117|j|j�||��|j|j�||�����d��z
c_��tt|j����D]�}|j
|jj\}}}}|j|xj|j
|j�|��zc_|j|xj|j
|j�dd��zc_��dS)NzIAuxDetect.fuserrr�r�s       r'r�zIAuxDetect.fuse�sw��
�� � � ��s�4�6�{�{�#�#�	|�	|�A���q�	�(�.�I�B�r�!�A��7�1�:�.�4�L�C��Q�q��F�1�I�N�N�e�l�4�6�!�9�+;�+C�+C�B�r�+J�+J�4�7�ST�:�K^�Kf�Kf�gj�kn�Ko�Ko�p�p�x�x�yz�{�{�{�N�N�N��s�4�6�{�{�#�#�	C�	C�A�����,�2�J�B�r�1�Q��F�1�I�N�N�d�g�a�j�1�9�9�"�=�=�=�N�N��F�1�I������118� 3� =� =�a�� B� B�B����	C�	Cr*rgc���tjtj|��tj|��g��\}}tj||fd���dd||df�����Srirjrns    r'rKzIAuxDetect._make_grid�rqr*c��tj|d��}|dd�dd�dd�f}|dd�dd�dd�f}|dd�dd�dd�f}||z}tjgd�gd�gd�gd�gtj|j���}||z}||fSrsrvrxs      r'rXzIAuxDetect.convert�r|r*r}r~r�r�s@r'r�r�7s��������
�F�
�F��G��K�
�F�T�T�T�T�T�T� F�F�F�<#�#�#�JC�C�C��H�H�H��\�H�119�120�121�122�123�124�125r*r�c�F��eZdZdZdZd126�fd�	Zd�Zedd	���Z�xZ	S)�IBinNFrr�c�:���tt������|�_|�_t�jdd����_t�jdd����_|dz�j���z�j���z�_	t|���_t|d��dz�_tjd��g�jz�_tj|�������jdd��}��d	|����d127|�����jddddd����t*��fd�|D�����_t*�d�|D�����_t*��fd
�|D�����_dS)Ngg@)�	bin_count�min�maxr@rrrrrrc3�j�K�|]-}t�|�j�jzd��V��.dSrrr#s  �r'r(z IBin.__init__.<locals>.<genexpr>�r)r*c3�4K�|]}t|��V��dSr�r�r�s  r'r(z IBin.__init__.<locals>.<genexpr>�r�r*c3�P�K�|] }t�j�jz��V��!dSr�r�r�s  �r'r(z IBin.__init__.<locals>.<genexpr>�r�r*)r+r�r,r-r�r�
w_bin_sigmoid�
h_bin_sigmoid�128get_lengthr!r.r/r"r0r1r2r3r4r5r6r7rr8r9r�r�)r&r-rr;r�r<r=s`     �r'r,z
IBin.__init__�s�����
�d�D���"�"�$�$�$����"���'�$�.�c�s�S�S�S���'�$�.�c�s�S�S�S����q�&���)�)�+�+�,�.2�.@�.K�.K�.M�.M�N����g�,�,����g�a�j�/�/�Q�&����[��^�^�$�t�w�.��	��L��!�!�'�'�)�)�.�.�t�w��A�>�>�����Y��*�*�*����]�A�G�G�I�I�N�N�4�7�A�r�1�a�QR�,S�,S�T�T�T����N�N�N�N�2�N�N�N�N�N����-�-�9�9�b�9�9�9�9�9����-�-�I�I�I�I�b�I�I�I�I�I����r*c	��d|j_d|j_g}|xj|jzc_t|j��D�][}|j||j|||����||<|j	|||��||<||j129\}}}}||�||j|j
||���ddddd�����||<|j�s�|j|j130dd�||j131dd�kr<|�||���||j��|j|<||���}|ddd�fdzd	z132|j|z|j|z|ddd�f<|j�|ddd133�f��|j|dz}	|j�|dd134d�f��|j|d
z}135|	|d<|136|d<t1j|ddd�f|ddd�ffd���}|�|�|d|j137d������]|jr|nt1j|d��|fS)NTrrr@rAr.rBrC��.r�.�.r).r).r@rr�)r��use_fw_regressionr�rErFrGr/r9r�r�rHr5r"r!rIrJr2rKrLrMrNrQrfrr0rTrU)r&r%r[r\r]r^r_r`ra�pw�phs           r'rfzIBin.forward�s���04���,�/3���,�
���
�
���$�
�
��t�w���	6�	6�A��4�6�!�9�Z�T�W�Q�Z��!��-�-�.�.�A�a�D��4�7�1�:�a��d�#�#�A�a�D��a�D�J�M�B��2�r��Q�4�9�9�R���$�'�2�r�:�:�B�B�1�a��A�q�Q�Q�\�\�^�^�A�a�D��=�
6��9�Q�<�%�a��c�*�a��d�j��1��o�=�=�#'�?�?�2�r�#:�#:�#=�#=�a��d�k�#J�#J�D�I�a�L��a�D�L�L�N�N�� ��a��c��{�R�/�#�5��	�!��D���TU��V��#�q��s�(���'�/�/��#�q��t�)��=�=��@P�QR�@S�TZ�@[�[���'�/�/��#�r�"�u�*�
�>�>��AQ�RS�AT�U[�A\�\����&�	���&�	��I�q��a��c��{�A�c�2�3�3�h�K�8�b�A�A�A���������B�����4�4�5�5�5���M�;�q�q��	�!�Q����';�;r*rgc���tjtj|��tj|��g��\}}tj||fd���dd||df�����Srirjrns    r'rKzIBin._make_grid�rqr*)rrrr�r~r�r�s@r'r�r��s��������
�F�
�F�J�J�J�J�J�J�.(<�(<�(<�T�H�H�H��\�H�H�H�H�Hr*r�c�r��eZdZd�fd�	Zdd�Zdd�Zdd�Zdd	�Zdd138�Zdd�Z	d�Z139d
�Zdd�Zd�Z
dd�Z�xZS)�Model�yolor-csp-c.yamlr@Nc�j���tt|�����d|_t	|t140��r||_neddl}t|��j|_	t|��5}|�||j���|_ddd��n#1swxYwY|j�
d|��x}|jd<|rF||jdkr5t�d|jd�d|����||jd<|r4t�d|����t!|��|jd	<t#t%|j��|g�141��\|_|_d�t+|jd��D��|_|jd}t	|t.��r�d
�t1j�fd�|�t1jd|������D����|_t;|��|xj|j�ddd��zc_|j|_|� ��t	|tB��r�d
�t1j�fd�|�t1jd|������D����|_t;|��|xj|j�ddd��zc_|j|_|� ��t	|tD��r�d
�t1j�fd�|�t1jd|������dd�D����|_t;|��|xj|j�ddd��zc_|j|_|�#��t	|tH��r�d
�t1j�fd�|�t1jd|������D����|_t;|��|xj|j�ddd��zc_|j|_|�%��t	|tL��r�d
�t1j�fd�|�t1jd|������D����|_t;|��|xj|j�ddd��zc_|j|_|�'��tQ|��|���t�d��dS)NFr)�Loaderr;r-zOverriding model.yaml nc=z	 with nc=z+Overriding model.yaml anchors with anchors=r)r;c�,�g|]}t|����Sr)�str)r$r\s  r'�142<listcomp>z"Model.__init__.<locals>.<listcomp>s��=�=�=��c�!�f�f�=�=�=r*r�c�0��g|]}�|jdz��S�������rH�r$r%�ss  �r'r�z"Model.__init__.<locals>.<listcomp>�#���$e�$e�$e��Q�����_�$e�$e�$er*rc�0��g|]}�|jdz��Sr�r�r�s  �r'r�z"Model.__init__.<locals>.<listcomp> r�r*c�0��g|]}�|jdz��Sr�r�r�s  �r'r�z"Model.__init__.<locals>.<listcomp>(s#���$i�$i�$i��Q�����_�$i�$i�$ir*rAc�0��g|]}�|jdz��Sr�r�r�s  �r'r�z"Model.__init__.<locals>.<listcomp>1r�r*c�0��g|]}�|jdz��Sr�r�r�s  �r'r�z"Model.__init__.<locals>.<listcomp>9r�r*�))r+r�r,�traced�143isinstance�dict�yaml�Path�name�	yaml_file�open�load�144SafeLoader�get�logger�info�round�parse_modelr�model�saverG�namesrr0r3rfr1rQrrr5�_initialize_biasesr�r��_initialize_aux_biasesr��_initialize_biases_binr��_initialize_biases_kptr
)145r&�cfgr;r-rr�fr9r�r=s146        @�r'r,zModel.__init__�s`����
�e�T���#�#�%�%�%�����c�4� � �	A��D�I�I��K�K�K�!�#�Y�Y�^�D�N��c���
A�a� �I�I�a���I�@�@��	�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A����
A�
A�
A�
A� $�y�}�}�T�2�6�6�6��T�Y�t�_�
�	!�"��	�$��'�'��K�K�R�D�I�d�O�R�R�b�R�R�S�S�S� �D�I�d�O��	2��K�K�O�g�O�O�P�P�P�#(��>�>�D�I�i� � +�H�T�Y�,?�,?�R�D� I� I� I���147�D�I�=�=�e�D�I�d�O�&<�&<�=�=�=��148�
�J�r�N���a�� � �	&��A��|�$e�$e�$e�$e�d�l�l�5�;�WX�Z\�^_�ab�Kc�Kc�>d�>d�$e�$e�$e�f�f�A�H��q�!�!�!�
�I�I�����r�1�a�0�0�0�I�I��(�D�K��#�#�%�%�%��a��!�!�	&��A��|�$e�$e�$e�$e�d�l�l�5�;�WX�Z\�^_�ab�Kc�Kc�>d�>d�$e�$e�$e�f�f�A�H��q�!�!�!�
�I�I�����r�1�a�0�0�0�I�I��(�D�K��#�#�%�%�%��a��$�$�	*��A��|�$i�$i�$i�$i�d�l�l�5�;�WX�Z\�^_�ab�Kc�Kc�>d�>d�eg�fg�eg�>h�$i�$i�$i�j�j�A�H��q�!�!�!�
�I�I�����r�1�a�0�0�0�I�I��(�D�K��'�'�)�)�)��a����	*��A��|�$e�$e�$e�$e�d�l�l�5�;�WX�Z\�^_�ab�Kc�Kc�>d�>d�$e�$e�$e�f�f�A�H��q�!�!�!�
�I�I�����r�1�a�0�0�0�I�I��(�D�K��'�'�)�)�)��a��#�#�	*��A��|�$e�$e�$e�$e�d�l�l�5�;�WX�Z\�^_�ab�Kc�Kc�>d�>d�$e�$e�$e�f�f�A�H��q�!�!�!�
�I�I�����r�1�a�0�0�0�I�I��(�D�K��'�'�)�)�)�	�4� � � ��	�	�������B�����s�:"B(�(B,�/B,Fc	�L�|�r|jdd�}gd�}gd�}g}t||��D]�\}}	t|	r|�|	��n||t	|j��������}149|�|150��d}|ddd�fxx|zcc<|	dkr|d|d	z151|d	<n|	d152kr|d|dz153|d<|�|����tj154|d��dfS|�||��S)
Nr�)rg���(\��?gq=155ףp�?)Nr@N)�gsr.rArr�r@rr�)rH�zipr�flip�intrQr��forward_oncerUr0rT)r&r%�augment�profile�img_sizer�rra�si�fi�xi�yis            r'rfz
Model.forwardEs8���	1��w�r�s�s�|�H����A����A��A��a��)�)�	
�	
���B��R�6�q�v�v�b�z�z�z�Q��s�4�;�?�?�CT�CT�?U�?U�V�V�V���&�&�r�*�*�1�-���3����7����r�!������7�7�!)�!��r�&�z�!9�B�v�J�J��1�W�W�!)�!��r�&�z�!9�B�v�J����������9�Q��?�?�D�(�(��$�$�Q��0�0�0r*c���	�ggc�	}|jD�]}|jdkr;t|jt��r
�	|jn��	fd�|jD���t	|d��sd|_|jrWt|t��s?t|t��s*t|t��st|t��r�na|�r,t|ttttf��}tr:tj||r��
��n�fd���ddzdznd}td	��D]#}||r��
��n����$t��}td	��D]#}||r��
��n����$|�t��|z156d157z��t#d||j|d|jfz��|�����	�|j|jvr�nd����|rt#dt-|��z���S)
Nrc�0��g|]}|dkr�n�|��S)rr)r$�jr%ras  ��r'r�z&Model.forward_once.<locals>.<listcomp>]s*���8]�8]�8]�TU�a�2�g�g���1�Q�4�8]�8]�8]r*rF)�inputs�verboserge��Ar�158�dz%10.1f%10.0f%10.1fms %-40sz%.1fms total)rrrr �hasattrrrr�r�r�r��thopr#�copyrGr	rUr��np�typer\r�sum)159r&r%r#�dtr9�c�or^�tras160 `       @r'r!zModel.forward_onceYs`�����B���2���	6�	6�A��s�b�y�y�(���c�2�2�]�A�a�c�F�F�8]�8]�8]�8]�8]�YZ�Y\�8]�8]�8]���4��*�*�
"�!����{�
��a��(�(��J�q�'�,B�,B��j�QR�T^�F_�F_��cm�no�qz�c{�c{���E��	
P��q�6�7�J��"E�F�F��cg�n�D�L���,@�A�F�F�H�H�H�q�+B�E�R�R�R�ST�U�X[�[�^_�_�_�mn���r���,�,�A��A�!�*�a�f�f�h�h�h��+�+�+�+�%�'�'���r���,�,�A��A�!�*�a�f�f�h�h�h��+�+�+�+��	�	�,�.�.��2�c�9�:�:�:��2�a���r�"�v�q�v�5N�N�O�O�O���!���A�
�H�H�!�#���*�*�Q�Q��5�5�5�5��	,��.�3�r�7�7�*�+�+�+��r*c	�\�|jd}t|j|j��D�]\}}|j�|jd��}|jdd�dfxxt�	dd|zdzz��z
cc<|jdd�dd�fxx|�%t�	d|j161dz162z��n(tj	||���z��z
cc<tj
�|�d��d	�163��|_��dS�NrrA��rr�333333�?�G�z��?T��
requires_grad�rrr9rQr�r5r"rS�math�logr-r0r5r�	Parameter�r&�cfr9�mir��bs      r'rzModel._initialize_biasesy���
�J�r�N�����a�h�'�'�	I�	I�E�B������Q�T�2�&�&�A�
�F�1�1�1�a�4�L�L�L�D�H�H�Q�#��'�a��%7�8�8�8�L�L�L�
�F�1�1�1�a�b�b�5�M�M�M�b�j�T�X�X�c�Q�T�D�[�&9�:�:�:�e�i�XZ�]_�]c�]c�]e�]e�Xe�Nf�Nf�f�M�M�M��h�(�(�������4�(�H�H�B�G�G�		I�	Ir*c	�b�|jd}t|j|j|j��D�]�\}}}|j�|jd��}|jdd�dfxxt�164dd|zdzz��z
cc<|jdd�dd�fxx|�%t�165d|jdz166z��n(tj167||�
��z��z
cc<tj�|�d��d	�168��|_|j�|jd��}|jdd�dfxxt�169dd|zdzz��z
cc<|jdd�dd�fxx|�%t�170d|jdz171z��n(tj172||�
��z��z
cc<tj�|�d��d	�173��|_��dSr;)rrr9r�rQr�r5r"rSrCrDr-r0r5rrE)r&rGr9rH�mi2r�rI�b2s        r'rzModel._initialize_aux_biases�s���
�J�r�N���a�c�1�4���2�2�	K�	K�J�B��Q�����Q�T�2�&�&�A�
�F�1�1�1�a�4�L�L�L�D�H�H�Q�#��'�a��%7�8�8�8�L�L�L�
�F�1�1�1�a�b�b�5�M�M�M�b�j�T�X�X�c�Q�T�D�[�&9�:�:�:�e�i�XZ�]_�]c�]c�]e�]e�Xe�Nf�Nf�f�M�M�M��h�(�(�������4�(�H�H�B�G�����q�t�R�(�(�B��G�A�A�A�q�D�M�M�M�T�X�X�a�3��7�q�.�&8�9�9�9�M�M�M��G�A�A�A�q�r�r�E�N�N�N�r�z�d�h�h�s�a�d�T�k�':�;�;�;�u�y�Y[�^`�^d�^d�^f�^f�Yf�Og�Og�g�N�N�N��x�)�)�"�'�'�"�+�+�T�)�J�J�C�H�H�	K�	Kr*c	�^�|jd}|j}t|j|j��D�]|\}}|j�|jd��}|dd�ddd|dzffj}d|zdz}|dd�d|�fxjt�174d|dzdz175z��z
c_|dd�|fxjt�176d	d177|zdzz��z
c_|dd�|dzd�fxj|�%t�178d|jdz179z��n(tj180||�
��z��z
c_||dd�ddd|dzff_tj�|�d��d���|_��~dS)
Nrrrrr@rAr>r?r<r=Tr@)rr�rr9rQr�r5r"rSrCrDr-r0r5rrE)	r&rGr9�bcrHr�rI�old�obj_idxs	         r'rzModel._initialize_biases_bin�s���
�J�r�N��
�[�����a�h�'�'�	I�	I�E�B������Q�T�2�&�&�A��A�A�A��!�A�b��d�|�O�$�)�C���d�1�f�G�
�a�a�a��'��k�N���4�8�8�C�2��6�D�=�,A�#B�#B�B���
�a�a�a��j�M���$�(�(�1��a��A�~�+=�">�">�>���
�a�a�a�'�!�)���o��#�#��181�t�x�x��q�t�d�{�0C�'D�'D�'D�X]�Xa�bd�gi�gm�gm�go�go�bo�Xp�Xp�p�#�#�&)�A�a�a�a�!�A�a��1���o��#��h�(�(�������4�(�H�H�B�G�G�	I�	Ir*c	�\�|jd}t|j|j��D�]\}}|j�|jd��}|jdd�dfxxt�	dd|zdzz��z
cc<|jdd�dd�fxx|�%t�	d|j182dz183z��n(tj	||���z��z
cc<tj
�|�d��d	�184��|_��dSr;rBrFs      r'rzModel._initialize_biases_kpt�rJr*c��|jd}|jD]�}|j����|jd��j}td|jj	dg|dd��185d������|dd��186���Rz����dS)Nrz4%6g Conv2d.bias:%10.3g%10.3g%10.3g%10.3g%10.3g%10.3grr)rr9r��detachr5r"�Tr�r�rH�mean�tolist)r&r9rHrIs    r'�
_print_biaseszModel._print_biases�s����J�r�N���#�	u�	u�B����� � �%�%�a�d�B�/�/�1�A��4�����9K�8s�a�PR�QR�PR�e�j�j�YZ�m�m�Nb�Nb�Nd�Nd�8s�fg�hi�hj�hj�fk�fp�fp�fr�fr�8s�8s�s�t�t�t�t�	u�	ur*c�h�td��|j���D]�}t|t��r|����,t|t��r|����Vt|��turLt|d��r<t|j|j
��|_t|d��|j|_��t|t"t$f��r |���|j|_��|���|S)NzFusing layers... �bn)r�r�modulesr�RepConv�fuse_repvgg_block�
RepConv_OREPA�switch_to_deployr4r�r0r187�convrZ�delattrr�rfr�r�r�r�r&r9s  r'r�z188Model.fuse�s	��
�!�"�"�"���#�#�%�%�
	*�
	*�A��!�W�%�%�
*��#�#�%�%�%�%��A�}�-�-�	
*��"�"�$�$�$�$��a���D���W�Q��%5�%5��)�!�&�!�$�7�7�����4� � � ��M��	�	��A���4�5�5�
*��������M��	���	�	�����r*Tc��t|jd��tu}|ry|swtd��t��}d|_|jdjdz|_|j�d|jz|���|���n'|s%|r#td��|jdd�|_|S)NrzAdding NMS... rz%s)r	�modulezRemoving NMS... )r4r�NMSr�rr\�189add_module�eval)r&�mode�presentr9s    r'�nmsz	Model.nms�s����t�z�"�~�&�&�#�-���		)��		)��"�#�#�#����A��A�C��*�R�.�"�Q�&�A�C��J�!�!�t�a�c�z�!�!�<�<�<��I�I�K�K�K�K��	)�'�	)��$�%�%�%���C�R�C��D�J��r*c�h�td��t|��}t||dd���|S)NzAdding autoShape... )rr-�hyprrQr)�include�exclude)r��	autoShaperrbs  r'�	autoshapezModel.autoshape�s:��
�$�%�%�%��d�O�O���!�T�#K�UW�X�X�X�X��r*r=c�(�t|||��dSr�)r)r&r-r$s   r'rz190Model.info�s���4��(�+�+�+�+�+r*)r�r@NN)FF)Fr�)T)Fr=)rr�r�r,rfr!rrrrrXr�rjrprr�r�s@r'r�r��s%�������F�F�F�F�F�F�P1�1�1�1�(����@I�I�I�I�K�K�K�K�
I�
I�
I�
I�I�I�I�I�u�u�u����&�������,�,�,�,�,�,�,�,r*r�c �X
�����t�ddz��|d|d|d|df\}}}}t|t��rt	|d��dzn|}||d	zz}gg�d191}192}	}t|d|dz��D�]�\�\}}��t�t��rt���n��t���D]6\}
}	t|t��rt|��n|�|
<�0#Y�4xYw|d
kr tt||z��d
��n|}�gtj�t�t�t�t�t �t"�t$�t&�t(�t*�t,�t.�t0�t2�t4�t6�t8�t:�t<�t>�t@�tB�tD�tF�tH�tJ�tL�tN�tP�tR�tT�tV�tX�tZ�t\�t^�t`�tb�td�tf�th�tj�tl�tn�tp�tr�tt�tv�tx�tz�t|�t~�t��Rv�r	�|�d}193}|194|krt�|195|zd��}196||197g�d
d����t&t,t.t<t>t@tDtFtHtLtNtPtTtVtXt\t^t`tdtfthtltntptttvtxt|t~t�fvr��Bd|��d
}�n��tjCur�|g��nk�t�urt��fd�|D����}198�nE�t�urt��fd�|D����}199�n�t�ur�|d}200�n�t�ur�|dz}201n�t�t�t�t�t�fvrv��N�fd�|D����t�d
t���r9tt��d
dz����gt	|��z�d
<nY�t�ur�|dz}202nD�t�ur�|�ddzz}203n&�t�ur�|�ddzz}204n�|}205|d
kr(tjT��fd�t�|��D���n���}t
���dd��Udd��}t�d�|�V��D����}�|||f\|_W|_X|_Y|_Zt�d�||||�fz��|	�[�fd�t|t���r|gn|D����|�N|���dkrg���N|206�����tjT|�t�|	��fS)Nz207%3s%18s%3s%10s  %-40s%-30s)r�from�n�paramsrd�	argumentsrr-�depth_multiple�width_multiplerrrr�backbone�headrr<c� ��g|]208}�|��Srr�r$r%r;s  �r'r�zparse_model.<locals>.<listcomp>����'�'�'��b��e�'�'�'r*c� ��g|]209}�|��Srrr|s  �r'r�zparse_model.<locals>.<listcomp>r}r*c� ��g|]210}�|��Srrr|s  �r'r�zparse_model.<locals>.<listcomp>s���*�*�*�1��A��*�*�*r*rAc���g|]}�����Srr)r$r^�argsr9s  ��r'r�zparse_model.<locals>.<listcomp>#s���8�8�8�!�Q�Q��X�8�8�8r*r�z	__main__.rc�6�g|]}|�����Sr)�numelr�s  r'r�zparse_model.<locals>.<listcomp>%s ��5�5�5��!�'�'�)�)�5�5�5r*z%3s%18s%3s%10.0f  %-40s%-30sc3�.�K�|]}|dk�|�zV��dS)rNr)r$r%r\s  �r'r(zparse_model.<locals>.<genexpr>(s+�����Q�Q�a��b���A��E�����Q�Qr*)]rrr�listr.�	enumerater�rgr�rrr r��211RobustConv�RobustConv2r��	GhostConvr\r^�DownC�SPP�SPPF�SPPCSPC�GhostSPPCSPC�	MixConv2d�Focus�Stem�	GhostStem�	CrossConv�212Bottleneck�BottleneckCSPA�BottleneckCSPB�BottleneckCSPC�
RepBottleneck�RepBottleneckCSPA�RepBottleneckCSPB�RepBottleneckCSPC�Res�ResCSPA�ResCSPB�ResCSPC�RepRes�213RepResCSPA�214RepResCSPB�215RepResCSPC�ResX�ResXCSPA�ResXCSPB�ResXCSPC�RepResX�RepResXCSPA�RepResXCSPB�RepResXCSPC�Ghost�	GhostCSPA�	GhostCSPB�	GhostCSPC�SwinTransformerBlock�STCSPA�STCSPB�STCSPC�SwinTransformer2Block�ST2CSPA�ST2CSPB�ST2CSPCr�insert�BatchNorm2d�Concatr5�Chuncat�Shortcut�Foldcutrr�r�r�r�rUr rG�ReOrg�Contract�Expandr��replace�216parametersr\rr4r3�extend�sorted)�dr;rr-�gd�gwr"r!�layersrr�rrtr+r<r��m_r9r3r�r\r9s `                 @@@r'rr�s)������217�K�K�.�1c�c�d�d�d��I�,��$���3C�1D�a�HX�FY�Y��G�R��R�#-�g�t�#<�#<�	I�#�g�a�j�/�/�Q�218�219�'�B�	�r�A�v��B��2�r�"�v�"�D�F�'��*�
��&�	�(A�B�B�E�E���?�A�q�!�T�!�!�S�)�)�0�D��G�G�G�q���d�O�O�	�	�D�A�q�
�%/��3�%7�%7�>�$�q�'�'�'�Q��Q����
������%&��U�U�C��a�"�f�
�
�q�!�!�!����220C���221C�D�222C�*�223C�k�224C�6�225C�9�226C�g�227C�Wd�228C�fk�229C��230C��231C�#�232C�%1�233C�3<�234C�>C�235C�EI�236C�KT�237C�V_�238C��239C�+�240C�-;�241C�=K�242C��243C�!2�244C�4E�245C�GX�246C��	247C��	248C� '�	249C�)0�	250C�251�252C�253$�254C�255&0�256C�2572<�258C��
259C� �
260C�"*�
261C�,4�
262C��263C�&�264C�(3�265C�5@�266C��267C�"�268C�$-�269C�/8�270C�&�271C�(.�272C�06�273C�8>�274C�'�275C�)0�276C�29�277C�;B�278C�279C�280C�281C���U�D��G��B��R�x�x�#�B��G�Q�/�/����&�T�!�"�"�X�&�D��U�G�\�#�^�^�&�(9�;L��g�w���Z��x�� �+�{��	�9��V�V��g�w�	0�	0�	0����A�q�!�!�!����
�"�.�
 �
 ��q�E�7�D�D�
�&�[�[��'�'�'�'�Q�'�'�'�(�(�B�B�
�'�\�\��'�'�'�'�Q�'�'�'�(�(�B�B�
�(�]�]��A�a�D��B�B�
�'�\�\��A��!��B�B�
�6�7�J��i�@�
@�
@��K�K�*�*�*�*��*�*�*�+�+�+��$�q�'�3�'�'�
>���d�1�g��k� 2� 2�3�3�4�s�1�v�v�=��Q���
�%�Z�Z��A����B�B�
�(�]�]��A���a��A��%�B�B�
�&�[�[��A��$�q�'�Q�,�&�B�B��A��B�=>��U�U�R�]�8�8�8�8�8�u�Q�x�x�8�8�8�
9�
9���4�����F�F�1�R�4�L� � ��b�1�1��
�5�5�R�]�]�_�_�5�5�5�
6�
6��%&��1�b�[�"���b�d�B�G�R�U����2�a��A�r�1�d�5K�K�L�L�L����Q�Q�Q�Q�:�a��+=�+=�$D�Q�C�C�1�Q�Q�Q�Q�Q�Q��
�
�b������6�6��B�282�	�	�"�
�
�
�
�
�=�&�!�6�$�<�<�/�/s�,)D�D�__main__z--cfgr�z283model.yaml)r4�default�helpz--devicerz%cuda device, i.e. 0 or 0,1,2,3 or cpu)r�r�z	--profile�284store_truezprofile model speed)�actionr�rr@r=T)r#)7�argparse�logging�sysr2r�pathrU�	getLoggerrrr0�
models.common�models.experimental�utils.autoanchorr�
utils.generalrrr�utils.torch_utilsr	r285rrr
rr�286utils.lossrr1�ImportErrorr�Modulerr�r�r�r�r�r�ArgumentParser�parser�add_argumentr��287parse_args�optrrMrLr�trainr#�rand�imgrarr*r'�<module>r�s�����������288�289�290�291���������������	��	�8�	$�	$����������!�!�!�!�/�/�/�/�/�/�A�A�A�A�A�A�A�A�A�A�������������������!�!�!�!�!�!���K�K�K�K�������D�D�D�����G�G�G�G�G�R�Y�G�G�G�Tn�n�n�n�n�b�i�n�n�n�bbH�bH�bH�bH�bH��	�bH�bH�bH�Jw�w�w�w�w���w�w�w�tHH�HH�HH�HH�HH�2�9�HH�HH�HH�Va,�a,�a,�a,�a,�B�I�a,�a,�a,�HM0�M0�M0�`�z���
$�X�
$�
&�
&�F�292����c�3E�L��Y�Y�Y�293���294�B�5\��]�]�]�295����L�?T��U�U�U�296�297�298�299�300�C��j���!�!�C�G��K�M�M�M�
�]�3�:�
&�
&�F�
�E�#�'�N�N���f�%�%�E�	�K�K�M�M�M�301�{�%��e�j��A�s�C�(�(�+�+�F�3�3���E�#�t�$�$�$����!��%�%s�2A7�7B�B