ó
    Eñi!  ã            
       óh  • S SK JrJr  S SKrS SKJrJr  SS\\   S\S\4S jjrS\\   S\4S	 jr	S\\\\   4   4S
 jr
 SS\R                  S\\\      S\\\   \\   4   4S jjrS\S\4S jrS\S\4S jrS\R
                  S\R
                  S\\R
                  \R
                  4   4S jrg)é    )ÚOptionalÚUnionN)ÚnnÚTensorÚtensorsÚdimÚreturnc                 óV   • [        U 5      S:X  a  U S   $ [        R                  " X5      $ )z_
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     ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torchvision/ops/_utils.pyÚ_catr      s)   € ô ˆ7ƒ|�qÓØ�q‰zÐÜ�9Š9�WÓ"Ð"ó    Úboxesc           	      ó  • [        U  Vs/ s H  oPM     snSS9n/ n[        U 5       H4  u  pAUR                  [        R                  " US S 2S S24   U5      5        M6     [        USS9n[        R
                  " XR/SS9nU$ s  snf )Nr   ©r   r   )r   Ú	enumerateÚappendr   Ú	full_liker   )r   ÚbÚconcat_boxesÚtempÚiÚidsÚroiss          r   Úconvert_boxes_to_roi_formatr      s   € Ü¡EÓ*¢E˜qš¡EÑ*°Ñ2€LØ€DÜ˜%Ö ‰ˆØ�‰”E—O’O A¢a¨¨!¨ e¡H¨aÓ0Ö1ñ !ä
ˆt˜Ñ
€CÜ�9Š9�cÐ(¨aÑ0€DØ€Kùò +s   ŠBc                 ó`  • [        U [        [        45      (       a3  U  H,  n[        R                  " UR                  S5      S:H  S5        M.     g [        U [        R                  5      (       a*  [        R                  " U R                  S5      S:H  S5        g [        R                  " SS5        g )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                 ó  • U(       du  [         R                  R                  R                  [         R                  [         R
                  [         R                  R                  R                  [         R                  /nU H1  n[        U[         R                  5      (       a  M$  [        SU S35      e   [        U5      n/ n/ nU R                  5        H§  n[        UR                  5       S 5      (       a'  UR                  S UR!                  SS9 5       5        MI  [#        Xc5      (       a(  UR                  S UR!                  5        5       5        M�  UR                  S UR!                  5        5       5        M©     XE4$ )NzClass z  is not a subclass of nn.Module.c              3   óJ   #   • U  H  oR                   (       d  M  Uv •  M     g 7f©N©Úrequires_grad©Ú.0Úps     r   Ú	<genexpr>Ú-split_normalization_params.<locals>.<genexpr>@   s   é € Ð_Ò+K aÏÍ§¡Ò+Kùó   ‚#š	#F)Úrecursec              3   óJ   #   • U  H  oR                   (       d  M  Uv •  M     g 7fr-   r.   r0   s     r   r3   r4   B   s   é € ÐQÒ*= QÇÅŸq™qÒ*=ùr5   c              3   óJ   #   • U  H  oR                   (       d  M  Uv •  M     g 7fr-   r.   r0   s     r   r3   r4   D   s   é € ÐRÒ+> aÇ/Å/§¡Ò+>ùr5   )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_paramsrM   )   s)  € ö ä�J‰J× Ñ ×+Ñ+Ü�L‰LÜ�L‰LÜ�J‰J×#Ñ#×1Ñ1Ü× Ñ ð
ˆó ˆÜ˜!œRŸY™Y×'Ó'Ü˜v a SÐ(HÐIÓJÐJñ ô �LÓ!€Gà€KØ€LØ—-‘-–/ˆÜ�—‘Ó! 4×(Ñ(Ø×ÑÑ_¨6×+<Ñ+<ÀUÐ+<Ñ+KÓ_Ö_Ü˜×(Ñ(Ø×ÑÑQ¨&×*;Ñ*;Ô*=ÓQÖQà×ÑÑR¨6×+<Ñ+<Ô+>ÓRÖRñ "ð Ð$Ð$r   rH   c                 ó,  • U R                  5       (       a@  U R                  [        R                  [        R                  4;   a  U $ U R                  5       $ U R                  [        R                  [        R                  4;   a  U $ U R                  5       $ r-   )	Úis_floating_pointÚdtyper   Úfloat32Úfloat64ÚfloatÚint32Úint64Úint©rH   s    r   Ú_upcastrX   H   sc   € à×Ñ×ÑØ—G‘G¤§¡¬u¯}©}Ð=Ó=ˆqÐLÀ1Ç7Á7Ã9ÐLà—G‘G¤§¡¬U¯[©[Ð9Ó9ˆqÐF¸q¿u¹u»wÐFr   c                 ó‚   • U R                   [        R                  [        R                  4;  a  U R	                  5       $ U $ r-   )rP   r   rQ   rR   rS   rW   s    r   Ú_upcast_non_floatrZ   P   s,   € à‡w�w”u—}‘}¤e§m¡mÐ4Ó4Ø�w‰w‹yÐØ€Hr   Úboxes1Úboxes2c                 ó–  • U R                  SS9u  p#pEUR                  SS9u  pgp‰[        R                  " X&5      n
[        R                  " X75      n[        R                  " XH5      n[        R                  " XY5      n[        R                  " U5      nXÛ:„  XÊ:„  -  nXÏ   X¯   -
  Xß   X¿   -
  -  Xï'   XB-
  XS-
  -  X†-
  X—-
  -  -   U-
  nUU4$ )Néÿÿÿÿr   )Úunbindr   ÚmaxÚminÚ
zeros_like)r[   r\   Úx1Úy1Úx2Úy2Úx1gÚy1gÚx2gÚy2gÚxkis1Úykis1Úxkis2Úykis2ÚintsctkÚmaskÚunionks                    r   Ú_loss_inter_unionrr   W   sÎ   € ð
 —]‘] r�]Ð*�N€BˆBØŸ™¨2˜Ð.Ñ€Cˆcô �IŠI�bÓ€EÜ�IŠI�bÓ€EÜ�IŠI�bÓ€EÜ�IŠI�bÓ€Eä×Ò˜rÓ"€GØ‰M˜e™mÑ,€DØ‘[ 5¡;Ñ.°5±;ÀÁÑ3LÑM€G�MØ‰g˜"™'Ñ" c¡i°C±IÑ%>Ñ>ÀÑH€Fà�Fˆ?Ðr   )r   r-   )Útypingr   r   r   r   r   r#   rV   r   r   r(   rB   Útyper$   rM   rX   rZ   rr   © r   r   Ú<module>rv      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   