Ë
    [²j‹,  ã                   óÄ  — d dl Z d dlZ d dlZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Ze j                  j!                  e j                  j"                  j$                  «      e j                  j!                  e j                  j"                  j&                  «      z  e j                  j!                  e j                  j"                  j(                  «      z  Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej:                  j=                  «       �rÖe j>                  jA                  dee¬«       e j>                  jA                  dee¬«       e j>                  jA                  de	e¬«       e j>                  jA                  dee
¬«       e j>                  jA                  dee¬«       e j>                  jA                  d ed«      «       e j>                  jA                  d ed«      «       e j>                  jA                  d ed«      «       e j>                  jA                  d  ed!«      «       e j>                  jA                  d" ed#«      «       e j>                  jC                  d$d%«      Z"d&D ](  Z#e"jI                  d'ee#«       e"jI                  dee#«       Œ* e"jI                  ded(«       e"jI                  ded(«       e"jI                  d!ed(«       e"jI                  d#ed(«       yy))é    Nc                 ó¢   — |\  }}}}}}}	| j                  |«       |j                  | _        || _        || _        || _        || _        |	| _        y ©N)Úsave_for_backwardÚshapeÚinput_shapeÚspatial_scaleÚpooled_heightÚpooled_widthÚsampling_ratioÚaligned)
ÚctxÚinputsÚoutputÚinputÚroisr   r	   r
   r   r   s
             úb/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torchvision/_autograd_registrations.pyÚ_roi_align_setup_contextr      sV   € ØW]ÑT€Eˆ4� ¨|¸^ÈWØ×Ñ˜$ÔØ—k‘k€C„OØ%€CÔØ%€CÔØ#€CÔØ'€CÔØ€C…Kó    c                 ó  — | j                   \  }| j                  \  }}}}t        j                  j                  j                  ||| j                  | j                  | j                  ||||| j                  | j                  «      }|d d d d d d fS r   )Úsaved_tensorsr   ÚtorchÚopsÚtorchvisionÚ_roi_align_backwardr   r	   r
   r   r   )r   Úgrad_outputr   Ú
batch_sizeÚchannelsÚheightÚwidthÚ
grad_inputs           r   r   r      s�   € Ø×Ñ�G€TØ*-¯/©/Ñ'€J�˜& %Ü—‘×&Ñ&×:Ñ:ØØØ×ÑØ×ÑØ×ÑØØØØØ×ÑØ�‰ó€Jð �t˜T 4¨¨t°TÐ9Ð9r   c                 óŽ   — |\  }}}}}|\  }}	| j                  ||	«       |j                  | _        || _        || _        || _        y r   ©r   r   r   r   r	   r
   )
r   r   r   r   r   r   r	   r
   ÚpooledÚargmaxs
             r   Ú_roi_pool_setup_contextr%   -   sN   € Ø>DÑ;€Eˆ4� ¨|Ø�N€FˆFØ×Ñ˜$ Ô'Ø—k‘k€C„OØ%€CÔØ%€CÔØ#€CÕr   c                 óð   — | j                   \  }}| j                  \  }}}}t        j                  j                  j                  |||| j                  | j                  | j                  ||||«
      }	|	d d d d fS r   )	r   r   r   r   r   Ú_roi_pool_backwardr   r	   r
   )
r   r   Ú_grad_argmaxr   r$   r   r   r   r   r    s
             r   r'   r'   7   s€   € Ø×$Ñ$�L€Dˆ&Ø*-¯/©/Ñ'€J�˜& %Ü—‘×&Ñ&×9Ñ9ØØØØ×ÑØ×ÑØ×ÑØØØØó€Jð �t˜T 4¨Ð-Ð-r   c                 óž   — |\  }}}}}}|\  }	}
| j                  ||
«       |j                  | _        || _        || _        || _        || _        y r   )r   r   r   r   r	   r
   r   )r   r   r   r   r   r   r	   r
   r   r#   Úchannel_mappings              r   Ú_ps_roi_align_setup_contextr+   J   sY   € ØNTÑK€Eˆ4� ¨|¸^Ø$Ñ€FˆOØ×Ñ˜$ Ô0Ø—k‘k€C„OØ%€CÔØ%€CÔØ#€CÔØ'€CÕr   c                 ó  — | j                   \  }}| j                  \  }}}}t        j                  j                  j                  |||| j                  | j                  | j                  | j                  ||||«      }	|	d d d d d fS r   )
r   r   r   r   r   Ú_ps_roi_align_backwardr   r	   r
   r   ©
r   r   Ú_grad_channel_mappingr   r*   r   r   r   r   r    s
             r   r-   r-   U   sŒ   € Ø×-Ñ-Ñ€Dˆ/Ø*-¯/©/Ñ'€J�˜& %Ü—‘×&Ñ&×=Ñ=ØØØØ×ÑØ×ÑØ×ÑØ×ÑØØØØó€Jð �t˜T 4¨¨tÐ3Ð3r   c                 óŽ   — |\  }}}}}|\  }}	| j                  ||	«       |j                  | _        || _        || _        || _        y r   r"   )
r   r   r   r   r   r   r	   r
   r#   r*   s
             r   Ú_ps_roi_pool_setup_contextr1   i   sO   € Ø>DÑ;€Eˆ4� ¨|Ø$Ñ€FˆOØ×Ñ˜$ Ô0Ø—k‘k€C„OØ%€CÔØ%€CÔØ#€CÕr   c                 óð   — | j                   \  }}| j                  \  }}}}t        j                  j                  j                  |||| j                  | j                  | j                  ||||«
      }	|	d d d d fS r   )	r   r   r   r   r   Ú_ps_roi_pool_backwardr   r	   r
   r.   s
             r   r3   r3   s   s�   € Ø×-Ñ-Ñ€Dˆ/Ø*-¯/©/Ñ'€J�˜& %Ü—‘×&Ñ&×<Ñ<ØØØØ×ÑØ×ÑØ×ÑØØØØó€Jð �t˜T 4¨Ð-Ð-r   c                 óÎ   — |\  }}}}}}}	}
}}}}}}| j                  |||||«       || _        |	| _        |
| _        || _        || _        || _        || _        || _        || _	        y r   )
r   Ústride_hÚstride_wÚpad_hÚpad_wÚ
dilation_hÚ
dilation_wÚgroupsÚoffset_groupsÚuse_mask)r   r   r   r   ÚweightÚoffsetÚmaskÚbiasr5   r6   r7   r8   r9   r:   r;   r<   r=   s                    r   Ú_deform_conv2d_setup_contextrB   †   sŒ   € ð  	ñØØØØØØØØØØØØØØà×Ñ˜% ¨°°tÔ<Ø€C„LØ€C„LØ€C„IØ€C„IØ€C„NØ€C„NØ€C„JØ%€CÔØ€C…Lr   c                 ót  — | j                   \  }}}}}t        j                  j                  j	                  ||||||| j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  «      \  }}}	}
}|||	|
|d d d d d d d d d fS r   )r   r   r   r   Ú_deform_conv2d_backwardr5   r6   r7   r8   r9   r:   r;   r<   r=   )r   r   r   r>   r?   r@   rA   r    Úgrad_weightÚgrad_offsetÚ	grad_maskÚ	grad_biass               r   rD   rD   £   sÇ   € Ø(+×(9Ñ(9Ñ%€Eˆ6�6˜4 ÜAFÇÁ×AVÑAV×AnÑAnØØØØØØØ�‰Ø�‰Ø�	‰	Ø�	‰	Ø�‰Ø�‰Ø�
‰
Ø×ÑØ�‰óBÑ>€J�˜[¨)°Yð$ 	ØØØØØØØØØØØØØðð r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó"   •— t        d‰› d�«      ‚)Nzdouble backwards on z not supported)ÚRuntimeError)r   ÚgradsÚop_names     €r   Úbackwardz%_no_double_backward.<locals>.backwardÊ   s   ø€ ÜÐ1°'°¸.ÐIÓJÐJr   © )rM   rN   s   ` r   Ú_no_double_backwardrP   É   s   ø€ ôKð €Or   c                 ó~   — | j                  «       r,| j                  t        j                  ur| j	                  «       S | S )z�Cast to float32 matching at::autocast::cached_cast(at::kFloat, ...) behavior.

    Skips non-floating-point tensors and float64 tensors.
    )Úis_floating_pointÚdtyper   Úfloat64Úfloat)Útensors    r   Ú_autocast_castrW   Û   s0   € ð
 ×ÑÔ! f§l¡l¼%¿-¹-Ñ&GØ�|‰|‹~ÐØ€Mr   c                 óî   — t         j                  j                  t        «      5  t         j                  j
                  j                  t        | «      t        |«      |«      cd d d «       S # 1 sw Y   y xY wr   )r   Ú_CÚ_ExcludeDispatchKeyGuardÚ_all_autocast_keysr   r   ÚnmsrW   )ÚdetsÚscoresÚiou_thresholds      r   Ú_autocast_nmsr`   å   sU   € Ü	�‰×	*Ñ	*Ô+=Ó	>ñ 
Ü�y‰y×$Ñ$×(Ñ(Ü˜4Ó Ü˜6Ó"Øó
÷
÷ 
ò 
ús   ¤=A+Á+A4c           
      ó,  — | j                   }t        j                  j                  t        «      5  t        j
                  j                  j                  t        | «      t        |«      |||||«      j                  |«      cd d d «       S # 1 sw Y   y xY wr   )
rS   r   rY   rZ   r[   r   r   Ú	roi_alignrW   Úto)r   r   r   r	   r
   r   r   Ú
orig_dtypes           r   Ú_autocast_roi_alignre   î   su   € Ø—‘€JÜ	�‰×	*Ñ	*Ô+=Ó	>ñ 	Ü�y‰y×$Ñ$×.Ñ.Ü˜5Ó!Ü˜4Ó ØØØØØó
÷ ‰"ˆZ‹.÷	÷ 	ò 	ús   °AB
Â
Bc                 óT  — | j                   }t        j                  j                  t        «      5  t        j
                  j                  j                  t        | «      t        |«      |||«      \  }}|j                  |«      |j                  |«      fcd d d «       S # 1 sw Y   y xY wr   )
rS   r   rY   rZ   r[   r   r   Úroi_poolrW   rc   )r   r   r   r	   r
   rd   r   r$   s           r   Ú_autocast_roi_poolrh   ü   s†   € Ø—‘€JÜ	�‰×	*Ñ	*Ô+=Ó	>ñ <ÜŸ™×.Ñ.×7Ñ7Ü˜5Ó!Ü˜4Ó ØØØó
‰ˆ�ð �y‰y˜Ó$ f§i¡i°
Ó&;Ð;÷<÷ <ò <úó   °A$BÂB'c           	      óV  — | j                   }t        j                  j                  t        «      5  t        j
                  j                  j                  t        | «      t        |«      ||||«      \  }}|j                  |«      |j                  |«      fcd d d «       S # 1 sw Y   y xY wr   )
rS   r   rY   rZ   r[   r   r   Úps_roi_alignrW   rc   )	r   r   r   r	   r
   r   rd   r   r*   s	            r   Ú_autocast_ps_roi_alignrl   	  s�   € Ø—‘€JÜ	�‰×	*Ñ	*Ô+=Ó	>ñ 	EÜ"'§)¡)×"7Ñ"7×"DÑ"DÜ˜5Ó!Ü˜4Ó ØØØØó#
Ñˆ�ð �y‰y˜Ó$ o×&8Ñ&8¸Ó&DÐD÷	E÷ 	Eò 	Eús   °A%BÂB(c                 óT  — | j                   }t        j                  j                  t        «      5  t        j
                  j                  j                  t        | «      t        |«      |||«      \  }}|j                  |«      |j                  |«      fcd d d «       S # 1 sw Y   y xY wr   )
rS   r   rY   rZ   r[   r   r   Úps_roi_poolrW   rc   )r   r   r   r	   r
   rd   r   r*   s           r   Ú_autocast_ps_roi_poolro     s�   € Ø—‘€JÜ	�‰×	*Ñ	*Ô+=Ó	>ñ EÜ"'§)¡)×"7Ñ"7×"CÑ"CÜ˜5Ó!Ü˜4Ó ØØØó#
Ñˆ�ð �y‰y˜Ó$ o×&8Ñ&8¸Ó&DÐD÷E÷ Eò Eúri   c                 óp  — | j                   }t        j                  j                  t        «      5  t        j
                  j                  j                  t        | «      t        |«      t        |«      t        |«      t        |«      |||||	|
|||«      j                  |«      cd d d «       S # 1 sw Y   y xY wr   )
rS   r   rY   rZ   r[   r   r   Údeform_conv2drW   rc   )r   r>   r?   r@   rA   r5   r6   r7   r8   r9   r:   r;   r<   r=   rd   s                  r   Ú_autocast_deform_conv2drr   $  s›   € ð  —‘€JÜ	�‰×	*Ñ	*Ô+=Ó	>ñ Ü�y‰y×$Ñ$×2Ñ2Ü˜5Ó!Ü˜6Ó"Ü˜6Ó"Ü˜4Ó Ü˜4Ó ØØØØØØØØØó
÷ ‰"ˆZ‹.÷!÷ ò ús   °A2B,Â,B5ztorchvision::roi_align)Úsetup_contextztorchvision::roi_poolztorchvision::ps_roi_alignztorchvision::ps_roi_poolztorchvision::deform_conv2dz torchvision::_roi_align_backwardrb   ztorchvision::_roi_pool_backwardrg   z#torchvision::_ps_roi_align_backwardrk   z"torchvision::_ps_roi_pool_backwardrn   z$torchvision::_deform_conv2d_backwardrq   r   ÚIMPL)ÚAutocastCUDAÚAutocastCPUÚAutocastXPUr\   ru   )%r   Útorch.libraryÚtorchvision.extensionr   r   r   r%   r'   r+   r-   r1   r3   rB   rD   rP   rY   ÚDispatchKeySetÚDispatchKeyrv   ru   rw   r[   rW   r`   re   rh   rl   ro   rr   Ú	extensionÚ_has_opsÚlibraryÚregister_autogradÚLibraryÚ_autocast_libÚ_keyÚimplrO   r   r   ú<module>r„      sÏ  ðÛ Û ó òò:ò($ò.ò&(ò4ò($ò.ò&ò:"òLð 
‡H�H×Ñ˜EŸH™H×0Ñ0×<Ñ<Ó=Ø‡h�h×Ñ˜eŸh™h×2Ñ2×?Ñ?Ó@ñAà‡h�h×Ñ˜eŸh™h×2Ñ2×>Ñ>Ó?ñ@ð òò
òò
<òEò
Eò!ðP ×Ñ×!Ñ!Õ#à	‡M�M×#Ñ#Ø Ð"5ÐE]ð $ô ð 
‡M�M×#Ñ#Ð$;Ð=OÐ_vÐ#ÔwØ	‡M�M×#Ñ#Ø#Ð%;ÐKfð $ô ð 
‡M�M×#Ñ#Ø"Ð$9ÐIcð $ô ð 
‡M�M×#Ñ#Ø$Ð&=ÐMið $ô ð
 
‡M�M×#Ñ#Ð$FÑH[Ð\gÓHhÔiØ	‡M�M×#Ñ#Ð$EÑGZÐ[eÓGfÔgØ	‡M�M×#Ñ#Ð$IÑK^Ð_mÓKnÔoØ	‡M�M×#Ñ#Ð$HÑJ]Ð^kÓJlÔmØ	‡M�M×#Ñ#Ð$JÑL_Ð`oÓLpÔqð —M‘M×)Ñ)¨-¸Ó@€Mð ?ò CˆØ×Ñ˜5 -°Ô6Ø×Ñ˜;Ð(;¸TÕBðCð
 ×Ñ�zÐ#5°~ÔFØ×Ñ�~Ð'=¸~ÔNØ×Ñ�}Ð&;¸^ÔLØ×Ñ�Ð(?ÀÕPðG $r   