Ë
    þÍ:j!  ã            
       óV  — d dl mZmZ d dlZd dlmZmZ ddee   dedefd„Zdee   defd	„Z	deeee   f   fd
„Z
	 ddej                  deee      deee   ee   f   fd„Zdedefd„Zdedefd„Zdej
                  dej
                  deej
                  ej
                  f   fd„Zy)é    )ÚOptionalÚUnionN)ÚnnÚTensorÚtensorsÚdimÚreturnc                 óT   — t        | «      dk(  r| d   S t        j                  | |«      S )zg
    Efficient version of torch.cat that avoids a copy if there is only a single element in a list
    é   r   )ÚlenÚtorchÚcat)r   r   s     úk/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/torchvision/ops/_utils.pyÚ_catr      s+   € ô ˆ7ƒ|�qÒØ�q‰zÐÜ�9‰9�W˜cÓ"Ð"ó    Úboxesc           	      ó  — t        | D �cg c]  }|‘Œ c}d¬«      }g }t        | «      D ]3  \  }}|j                  t        j                  |d d …d d…f   |«      «       Œ5 t        |d¬«      }t        j
                  ||gd¬«      }|S c c}w )Nr   ©r   r   )r   Ú	enumerateÚappendr   Ú	full_liker   )r   ÚbÚconcat_boxesÚtempÚiÚidsÚroiss          r   Úconvert_boxes_to_roi_formatr      s„   € Ü EÖ*˜qšÒ*°Ô2€LØ€DÜ˜%Ó ò 2‰ˆˆ1Ø�‰”E—O‘O A¢a¨¨!¨ e¡H¨aÓ0Õ1ð2ä
ˆt˜Ô
€CÜ�9‰9�c˜<Ð(¨aÔ0€DØ€Kùò +s   Š	Bc                 óB  — t        | t        t        f«      r0| D ]*  }t        j                  |j                  d«      dk(  d«       Œ, y t        | t        j                  «      r)t        j                  | j                  d«      dk(  d«       y t        j                  dd«       y )Nr   é   zNThe shape of the tensor in the boxes list is not correct as List[Tensor[L, 4]]é   z5The boxes tensor shape is not correct as Tensor[K, 5]Fz>boxes is expected to be a Tensor[L, 5] or a List[Tensor[K, 4]])Ú
isinstanceÚlistÚtupler   Ú_assertÚsizer   )r   Ú_tensors     r   Úcheck_roi_boxes_shaper(      sˆ   € Ü�%œ$¤˜Ô'Øò 	ˆGÜ�M‰MØ—‘˜Q“ 1Ñ$Ð&võð	ð ô	 
�Eœ5Ÿ<™<Ô	(Ü�‰�e—j‘j “m qÑ(Ð*aÔbð ô 	�‰�eÐ]Ô^Ø
r   ÚmodelÚnorm_classesc                 óØ  — |sut         j                  j                  j                  t         j                  t         j
                  t         j                  j                  j                  t         j                  g}|D ]+  }t        |t         j                  «      rŒt        d|› d�«      ‚ t        |«      }g }g }| j                  «       D ]ž  }t        |j                  «       d «      r)|j                  d„ |j!                  d¬«      D «       «       ŒFt#        ||«      r'|j                  d„ |j!                  «       D «       «       Œy|j                  d„ |j!                  «       D «       «       Œ  ||fS )NzClass z  is not a subclass of nn.Module.c              3   ó:   K  — | ]  }|j                   sŒ|–— Œ y ­w©N©Úrequires_grad©Ú.0Úps     r   ú	<genexpr>z-split_normalization_params.<locals>.<genexpr>@   s   è ø€ Ò_ aÈqÏË¤Ñ_ùó   ‚”F)Úrecursec              3   ó:   K  — | ]  }|j                   sŒ|–— Œ y ­wr-   r.   r0   s     r   r3   z-split_normalization_params.<locals>.<genexpr>B   s   è ø€ ÒQ QÀÇÃœqÑQùr4   c              3   ó:   K  — | ]  }|j                   sŒ|–— Œ y ­wr-   r.   r0   s     r   r3   z-split_normalization_params.<locals>.<genexpr>D   s   è ø€ ÒR aÀ!Ç/Ã/¤ÑRùr4   )r   ÚmodulesÚ	batchnormÚ
_BatchNormÚ	LayerNormÚ	GroupNormÚinstancenormÚ_InstanceNormÚLocalResponseNormÚ
issubclassÚModuleÚ
ValueErrorr$   ÚnextÚchildrenÚextendÚ
parametersr"   )r)   r*   ÚtÚclassesÚnorm_paramsÚother_paramsÚmodules          r   Úsplit_normalization_paramsrL   )   s2  € ñ ä�J‰J× Ñ ×+Ñ+Ü�L‰LÜ�L‰LÜ�J‰J×#Ñ#×1Ñ1Ü× Ñ ð
ˆð ò KˆÜ˜!œRŸY™YÕ'Ü˜v a SÐ(HÐIÓJÐJðKô �LÓ!€Gà€KØ€LØ—-‘-“/ò SˆÜ�—‘Ó! 4Ô(Ø×ÑÑ_¨6×+<Ñ+<ÀUÐ+<Ó+KÔ_Õ_Ü˜ Ô(Ø×ÑÑQ¨&×*;Ñ*;Ó*=ÔQÕQà×ÑÑR¨6×+<Ñ+<Ó+>ÔRÕRðSð ˜Ð$Ð$r   rG   c                 ó  — | j                  «       r>| j                  t        j                  t        j                  fv r| S | j                  «       S | j                  t        j                  t        j                  fv r| S | j                  «       S r-   )	Úis_floating_pointÚdtyper   Úfloat32Úfloat64ÚfloatÚint32Úint64Úint©rG   s    r   Ú_upcastrW   H   s`   € à×ÑÔØ—G‘G¤§¡¬u¯}©}Ð=Ñ=ˆqÐLÀ1Ç7Á7Ã9ÐLà—G‘G¤§¡¬U¯[©[Ð9Ñ9ˆqÐF¸q¿u¹u»wÐFr   c                 ó~   — | j                   t        j                  t        j                  fvr| j	                  «       S | S r-   )rO   r   rP   rQ   rR   rV   s    r   Ú_upcast_non_floatrY   P   s,   € à‡w�w”u—}‘}¤e§m¡mÐ4Ñ4Ø�w‰w‹yÐØ€Hr   Úboxes1Úboxes2c                 ó¾  — | j                  d¬«      \  }}}}|j                  d¬«      \  }}}}	t        j                  ||«      }
t        j                  ||«      }t        j                  ||«      }t        j                  ||	«      }t        j                  |«      }||kD  ||
kD  z  }||   |
|   z
  ||   ||   z
  z  ||<   ||z
  ||z
  z  ||z
  |	|z
  z  z   |z
  }||fS )Néÿÿÿÿr   )Úunbindr   ÚmaxÚminÚ
zeros_like)rZ   r[   Úx1Úy1Úx2Úy2Úx1gÚy1gÚx2gÚy2gÚxkis1Úykis1Úxkis2Úykis2ÚintsctkÚmaskÚunionks                    r   Ú_loss_inter_unionrq   W   sô   € ð
 —]‘] r�]Ó*�N€BˆˆB�ØŸ™¨2˜Ó.Ñ€Cˆˆc�3ô �I‰I�b˜#Ó€EÜ�I‰I�b˜#Ó€EÜ�I‰I�b˜#Ó€EÜ�I‰I�b˜#Ó€Eä×Ñ˜rÓ"€GØ�E‰M˜e e™mÑ,€DØ˜4‘[ 5¨¡;Ñ.°5¸±;ÀÀtÁÑ3LÑM€GˆD�MØ�2‰g˜"˜r™'Ñ" c¨C¡i°C¸#±IÑ%>Ñ>ÀÑH€Fà�Fˆ?Ðr   )r   r-   )Útypingr   r   r   r   r   r#   rU   r   r   r(   rA   Útyper$   rL   rW   rY   rq   © r   r   ú<module>ru      s  ðß "ã ß ñ#�$�v‘,ð # Sð #°ó #ð t¨F¡|ð ¸ó ð
  v¨t°F©|Ð';Ñ!<ó 
ð <@ñ%Ø�9‰9ð%Ø$,¨T°$©ZÑ$8ð%à
ˆ4�‰<˜˜f™Ð%Ñ&ó%ð>Gˆvð G˜&ó Gð˜ð  Fó ðØ�L‰Lðà�L‰Lðð ˆ5�<‰<˜Ÿ™Ð%Ñ&ôr   