ó
    Eñi(  ã                   óÀ  • S SK r S SKrS SKrS SKrS SKr\ R                  " S5      S 5       rSS jr\" S5      S 5       r	\" S5      S 5       r
\" S5      S	 5       r\" S
5      S 5       r\" S5      S 5       r\" S5      S 5       r\" S5      S 5       r\" S5      S 5       r\R"                  R%                  S5      S 5       r\" S5      S 5       r\" S5      S 5       rg)é    Nc                  óD   • [         R                  R                  SSS5      $ )NÚtorchvisionÚIMPLÚMeta)ÚtorchÚlibraryÚLibrary© ó    Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torchvision/_meta_registrations.pyÚget_meta_libr      s   € ä�=‰=× Ñ  °¸Ó?Ð?r   c                 ó   ^ ^• U U4S jnU$ )Nc                 óÚ   >• [         R                  R                  5       (       aF  [        5       R	                  [        [        [        R                  R                   T5      T5      U 5        U $ ©N)r   Ú	extensionÚ_has_opsr   ÚimplÚgetattrr   Úops)ÚfnÚop_nameÚoverload_names    €€r   ÚwrapperÚregister_meta.<locals>.wrapper   sI   ø€ Ü× Ñ ×)Ñ)×+Ñ+Ü‹N×Ñ¤¬´·	±	×0EÑ0EÀwÓ(OÐQ^Ó _ÐacÔdØˆ	r   r
   )r   r   r   s   `` r   Úregister_metar      s   ù€ öð
 €Nr   Ú	roi_alignc                 ó*  ^ ^• [         R                  " TR                  S5      S:H  S 5        [         R                  " T R                  TR                  :H  U U4S j5        TR                  S5      nT R                  S5      nT R	                  XxX445      $ )Né   é   c                  ó   • g©Nz$rois must have shape as Tensor[K, 5]r
   r
   r   r   Ú<lambda>Ú meta_roi_align.<locals>.<lambda>   ó   € Ð,Rr   c                  ó<   >• ST R                    STR                    3$ ©NzMExpected tensor for input to have the same type as tensor for rois; but type ú does not equal ©Údtype©ÚinputÚroiss   €€r   r"   r#      ó"   ø€ ðØŸ™�}Ð$4°T·Z±Z°LñBr   r   )r   Ú_checkÚsizer)   Ú	new_empty)	r+   r,   Úspatial_scaleÚpooled_heightÚpooled_widthÚsampling_ratioÚalignedÚnum_roisÚchannelss	   ``       r   Úmeta_roi_alignr8      sp   ù€ ä	‡L‚L�—‘˜1“ Ñ"Ñ$RÔSÜ	‡L‚LØ�‰�t—z‘zÑ!õ	
ôð �y‰y˜‹|€HØ�z‰z˜!‹}€HØ�?‰?˜H°ÐLÓMÐMr   Ú_roi_align_backwardc                 ó’   ^ ^• [         R                  " T R                  TR                  :H  U U4S j5        T R                  XVXx45      $ )Nc                  ó<   >• ST R                    STR                    3$ ©NzLExpected tensor for grad to have the same type as tensor for rois; but type r'   r(   ©Úgradr,   s   €€r   r"   Ú)meta_roi_align_backward.<locals>.<lambda>.   ó"   ø€ ðØŸ
™
�|Ð#3°D·J±J°<ñAr   ©r   r.   r)   r0   )r>   r,   r1   r2   r3   Ú
batch_sizer7   ÚheightÚwidthr4   r5   s   ``         r   Úmeta_roi_align_backwardrE   (   ó<   ù€ ô 
‡L‚LØ�
‰
�d—j‘jÑ õ	
ôð �>‰>˜:°Ð?Ó@Ð@r   Úps_roi_alignc                 ó¾  ^ ^• [         R                  " TR                  S5      S:H  S 5        [         R                  " T R                  TR                  :H  U U4S j5        T R                  S5      n[         R                  " XcU-  -  S:H  S5        TR                  S5      nXvX4-  -  X44nT R	                  U5      [         R
                  " U[         R                  SS94$ )	Nr   r   c                  ó   • gr!   r
   r
   r   r   r"   Ú#meta_ps_roi_align.<locals>.<lambda>8   r$   r   c                  ó<   >• ST R                    STR                    3$ r&   r(   r*   s   €€r   r"   rJ   ;   r-   r   r   úCinput channels must be a multiple of pooling height * pooling widthÚmeta)r)   Údevice©r   r.   r/   r)   r0   ÚemptyÚint32)	r+   r,   r1   r2   r3   r4   r7   r6   Úout_sizes	   ``       r   Úmeta_ps_roi_alignrS   6   sµ   ù€ ä	‡L‚L�—‘˜1“ Ñ"Ñ$RÔSÜ	‡L‚LØ�‰�t—z‘zÑ!õ	
ôð �z‰z˜!‹}€HÜ	‡L‚LØ LÑ0Ñ1°QÑ6ØMôð
 �y‰y˜‹|€HØ }Ñ'CÑDÀmÐb€HØ�?‰?˜8Ó$¤e§k¢k°(Ä%Ç+Á+ÐV\Ñ&]Ð]Ð]r   Ú_ps_roi_align_backwardc                 ó’   ^ ^• [         R                  " T R                  TR                  :H  U U4S j5        T R                  XxXš45      $ )Nc                  ó<   >• ST R                    STR                    3$ r<   r(   r=   s   €€r   r"   Ú,meta_ps_roi_align_backward.<locals>.<lambda>[   r@   r   rA   )r>   r,   Úchannel_mappingr1   r2   r3   r4   rB   r7   rC   rD   s   ``         r   Úmeta_ps_roi_align_backwardrY   K   s<   ù€ ô 
‡L‚LØ�
‰
�d—j‘jÑ õ	
ôð �>‰>˜:°Ð?Ó@Ð@r   Úroi_poolc                 óv  ^ ^• [         R                  " TR                  S5      S:H  S 5        [         R                  " T R                  TR                  :H  U U4S j5        TR                  S5      nT R                  S5      nXVX44nT R	                  U5      [         R
                  " US[         R                  S94$ )Nr   r   c                  ó   • gr!   r
   r
   r   r   r"   Úmeta_roi_pool.<locals>.<lambda>e   r$   r   c                  ó<   >• ST R                    STR                    3$ r&   r(   r*   s   €€r   r"   r]   h   r-   r   r   rM   ©rN   r)   rO   )r+   r,   r1   r2   r3   r6   r7   rR   s   ``      r   Úmeta_roi_poolr`   c   sŽ   ù€ ä	‡L‚L�—‘˜1“ Ñ"Ñ$RÔSÜ	‡L‚LØ�‰�t—z‘zÑ!õ	
ôð �y‰y˜‹|€HØ�z‰z˜!‹}€HØ MÐ@€HØ�?‰?˜8Ó$¤e§k¢k°(À6ÔQV×Q\ÑQ\Ñ&]Ð]Ð]r   Ú_roi_pool_backwardc
                 ó’   ^ ^• [         R                  " T R                  TR                  :H  U U4S j5        T R                  XgX‰45      $ )Nc                  ó<   >• ST R                    STR                    3$ r<   r(   r=   s   €€r   r"   Ú(meta_roi_pool_backward.<locals>.<lambda>y   r@   r   rA   )
r>   r,   Úargmaxr1   r2   r3   rB   r7   rC   rD   s
   ``        r   Úmeta_roi_pool_backwardrf   s   rF   r   Úps_roi_poolc                 ó¾  ^ ^• [         R                  " TR                  S5      S:H  S 5        [         R                  " T R                  TR                  :H  U U4S j5        T R                  S5      n[         R                  " XSU-  -  S:H  S5        TR                  S5      nXeX4-  -  X44nT R	                  U5      [         R
                  " US[         R                  S94$ )	Nr   r   c                  ó   • gr!   r
   r
   r   r   r"   Ú"meta_ps_roi_pool.<locals>.<lambda>ƒ   r$   r   c                  ó<   >• ST R                    STR                    3$ r&   r(   r*   s   €€r   r"   rj   †   r-   r   r   rL   rM   r_   rO   )r+   r,   r1   r2   r3   r7   r6   rR   s   ``      r   Úmeta_ps_roi_poolrl   �   s·   ù€ ä	‡L‚L�—‘˜1“ Ñ"Ñ$RÔSÜ	‡L‚LØ�‰�t—z‘zÑ!õ	
ôð �z‰z˜!‹}€HÜ	‡L‚LØ LÑ0Ñ1°QÑ6ØMôð �y‰y˜‹|€HØ }Ñ'CÑDÀmÐb€HØ�?‰?˜8Ó$¤e§k¢k°(À6ÔQV×Q\ÑQ\Ñ&]Ð]Ð]r   Ú_ps_roi_pool_backwardc
                 ó’   ^ ^• [         R                  " T R                  TR                  :H  U U4S j5        T R                  XgX‰45      $ )Nc                  ó<   >• ST R                    STR                    3$ r<   r(   r=   s   €€r   r"   Ú+meta_ps_roi_pool_backward.<locals>.<lambda>›   r@   r   rA   )
r>   r,   rX   r1   r2   r3   rB   r7   rC   rD   s
   ``        r   Úmeta_ps_roi_pool_backwardrq   •   rF   r   ztorchvision::nmsc                 ó"  ^ ^• [         R                  " T R                  5       S:H  U 4S j5        [         R                  " T R                  S5      S:H  U 4S j5        [         R                  " TR                  5       S:H  U4S j5        [         R                  " T R                  S5      TR                  S5      :H  U U4S j5        [         R                  R                  5       nUR                  5       nT R                  U[         R                  S	9$ )
Né   c                  ó,   >• ST R                  5        S3$ )Nz!boxes should be a 2d tensor, got ÚD©Údim©Údetss   €r   r"   Úmeta_nms.<locals>.<lambda>¥   s   ø€ Ð,MÈdÏhÉhËjÈ\ÐYZÑ*[r   r   é   c                  ó,   >• ST R                  S5       3$ )Nz1boxes should have 4 elements in dimension 1, got r   ©r/   rx   s   €r   r"   rz   ¦   s   ø€ Ð._Ð`d×`iÑ`iÐjkÓ`lÐ_mÑ,nr   c                  ó*   >• ST R                  5        3$ )Nz"scores should be a 1d tensor, got rv   )Úscoress   €r   r"   rz   §   s   ø€ Ð.PÐQW×Q[ÑQ[ÓQ]ÐP^Ñ,_r   r   c                  óP   >• ST R                  S5       STR                  S5       3$ )NzIboxes and scores should have same number of elements in dimension 0, got r   z and r}   )ry   r   s   €€r   r"   rz   ª   s0   ø€ Ð[Ð\`×\eÑ\eÐfgÓ\hÐ[iÐinÐou×ozÑozÐ{|Óo}Ðn~Ñr   r(   )	r   r.   rw   r/   Ú_custom_opsÚget_ctxÚcreate_unbacked_symintr0   Úlong)ry   r   Úiou_thresholdÚctxÚnum_to_keeps   ``   r   Úmeta_nmsrˆ   £   s´   ù€ ä	‡L‚L�—‘“˜q‘Ô"[Ô\Ü	‡L‚L�—‘˜1“ Ñ"Ô$nÔoÜ	‡L‚L�—‘“ Ñ"Ô$_Ô`Ü	‡L‚LØ�	‰	�!‹˜Ÿ™ A›Ñ&Ýôô ×
Ñ
×
#Ñ
#Ó
%€CØ×,Ñ,Ó.€KØ�>‰>˜+¬U¯Z©Zˆ>Ð8Ð8r   Údeform_conv2dc                 óˆ   • UR                   SS  u  pïUR                   S   nU R                   S   nU R                  UUXï45      $ )Néþÿÿÿr   )Úshaper0   )r+   ÚweightÚoffsetÚmaskÚbiasÚstride_hÚstride_wÚpad_hÚpad_wÚdil_hÚdil_wÚn_weight_grpsÚn_offset_grpsÚuse_maskÚ
out_heightÚ	out_widthÚout_channelsrB   s                     r   Úmeta_deform_conv2dr�   ±   sG   € ð$ #ŸL™L¨¨Ð-Ñ€JØ—<‘< ‘?€LØ—‘˜Q‘€JØ�?‰?˜J¨°jÐLÓMÐMr   Ú_deform_conv2d_backwardc                 ó  • UR                  UR                  5      nUR                  UR                  5      nUR                  UR                  5      nUR                  UR                  5      nUR                  UR                  5      nUUUUU4$ r   )r0   rŒ   )r>   r+   r�   rŽ   r�   r�   r‘   r’   r“   r”   Ú
dilation_hÚ
dilation_wÚgroupsÚoffset_groupsr™   Ú
grad_inputÚgrad_weightÚgrad_offsetÚ	grad_maskÚ	grad_biass                       r   Úmeta_deform_conv2d_backwardr©   É   ss   € ð& —‘ §¡Ó-€JØ×"Ñ" 6§<¡<Ó0€KØ×"Ñ" 6§<¡<Ó0€KØ—‘˜tŸz™zÓ*€IØ—‘˜tŸz™zÓ*€IØ�{ K°¸IÐEÐEr   )Údefault)Ú	functoolsr   Útorch._custom_opsÚtorch.libraryÚtorchvision.extensionr   Ú	lru_cacher   r   r8   rE   rS   rY   r`   rf   rl   rq   r   Úregister_fakerˆ   r�   r©   r
   r   r   Ú<module>r±      ss  ðÛ ã Û Û ó ð ×Ò�TÓñ@ó ð@ôñ ˆ{ÓñNó ðNñ Ð$Ó%ñ
Aó &ð
Añ ˆ~Óñ^ó ð^ñ( Ð'Ó(ñAó )ðAñ. ˆzÓñ^ó ð^ñ Ð#Ó$ñ
Aó %ð
Añ ˆ}Óñ^ó ð^ñ& Ð&Ó'ñ
Aó (ð
Að ‡�×ÑÐ/Ó0ñ
9ó 1ð
9ñ ˆÓñNó  ðNñ. Ð(Ó)ñFó *ñFr   