
    Αi,                        S SK JrJr  S SKJrJr  SSSSSSS	.S
SSSSSS.SSSS.SSSS.SSSS.SSSSSSS.SSSSSSSSS S!.	S".r\R                  " 5       r\R                  " 5       r
\R                  " 5       r " S# S$\R                  5      rg%)&    )_C_ops_legacy_C_ops)core	frameworkgraph_send_recvX	Src_index	Dst_indexOut	Dst_count)final_op_namex	src_index	dst_indexout	dst_countmatmultrans_xtrans_yY)r   transpose_xtranspose_yr   yr   trunc)r   r   r   absdigammadiagonalInputoffsetaxis1axis2)r   r   r   r    r!   r   	roi_alignROIsRoisNumpooled_heightpooled_widthspatial_scalesampling_ratioaligned)	r   r   boxes	boxes_numr%   r&   r'   r(   r)   )r   	matmul_v2r   r   r   r   r"   c                   b   ^  \ rS rSrSrU 4S jr  S
S jr  S
S jr  S
S jrS r	S r
S	rU =r$ )Tracer^   a  
:api_attr: imperative

Tracer is used to execute and record the operators executed, to construct the
computation graph in dygraph model. Tracer has two mode, :code:`train_mode`
and :code:`eval_mode`. In :code:`train_mode`, Tracer would add backward network
automatically and perform AutoGrad by method :code:`loss.backward()`.
In :code:`eval_mode`, Tracer would not add backward network.

This is a low level API, users don't need to use it directly.
c                 0   > [         TU ]  5         SU l        g NT)super__init___train_mode)self	__class__s    Z/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/base/dygraph/tracer.pyr3   Tracer.__init__k   s        c                 	   [         R                  U   n[        U   n[        U   n	[        U   n
/ n[        [        U5      5       GH|  nS nX   nX   nXR                  5       ;   a  X.   nOXR                  5       ;   a  X>   nOSUSS  ;   a,  US S nUUR                  5       ;   d   e[        UU   5      nUnOLSUSS  ;   aC  US S n[        U5        UUR                  5       ;   a  UU   nOUUR                  5       ;   a  UU   nUc  UR                  U5        M  US:X  a@  [        U[        5      (       a  UR                  US   5        GM  UR                  U5        GM  US:X  a+  [        U[        5      (       d   eUR                  U5        GML  US:X  d   e[        U[        5      (       d   eUR                  U5        GM     / nUR                  5        H(  u  nnUR                  U5        UR                  U5        M*     U" / UQUQ76 nUS:X  aw  [        UR                  5       5      S	:X  d   e[        [        UR                  5       5      5      n[        [        U5      5       H  nUU   R!                  UU   U   5        M     g [        U["        5      (       a  [        [        U
5      5       H  nX   nUUR                  5       ;   d  M  [        UU   [        5      (       a>  [        [        UU   5      5       H!  nUU   U   R%                  UU   U   S
5        M#     Ms  [        UU   [        5      (       a  UU   S   R%                  UU   S
5        M  UU   R%                  UU   S
5        M     g [        U[        5      (       ax  [        UR                  5       5      S	:X  d   e[        [        UR                  5       5      5      n[        [        U5      5       H  nUU   U   R%                  UU   S
5        M      g [        UR                  5       5      S	:X  d   e[        [        UR                  5       5      5      n[        UU   [        5      (       a  UU   S   R%                  US
5        g UU   R%                  US
5        g )NNumVartensorr   listintload_combine   F)r   __dict__core_ops_args_infocore_ops_args_type_infocore_ops_returns_inforangelenkeysprintappend
isinstancer?   r@   itemsnextiter_share_underline_tensor_totuplereconstruct_from_)r5   op_typeinputsoutputsattrsstop_gradientinplace_mapfunction_ptrop_argsop_args_type
op_returnsarg_listiarg_to_appendarg_namearg_typeout_namenum_outs
attrs_listkvreturnskeyjretnames                            r7   eager_legacy_trace_opTracer.eager_legacy_trace_opp   s    %--g6$W-.w7*73
s7|$A MzH#H;;=( & 0\\^+ ' 1HRSM)'}H#w||~555"78#45H$,Mhrsm+'}H(O7<<>1(/(9!V[[]2(.x(8$.X%mT22OOM!$45OOM2V#!-6666.5(((!-5555.O %R 
KKMDAqa a  " 66:6n$w||~&!+++tGLLN+,C3w<(
55gcl1oF )gu%%3z?+$-glln,!'!*d33!&s71:!7A#G,Q/AA '
1u "8
 &gg&6==#G,Q/AA '
E $G,>> '
E ,$ &&w||~&!+++tGLLN+,C3w<(Q11'!*eD ) w||~&!+++tGLLN+,C'#,--Q11'5A..w>r9   c                    U[         R                  5       ;   d   e[         U   S   n[        R                  U   n[        R                  " 5       n[        R
                  " 5       n	[        R                  " 5       n
X   nX   nX   n/ n[        [        U5      5       GH/  nX   nX   nU[         U   R                  5       ;   d   e[         U   U   nUUR                  5       ;   a  UU   nO<UUR                  5       ;   a  UU   nO"UUR                  5       ;   a  US:X  a  UU   nOS nUS:X  a  UR                  U5        M  US:X  a>  [        U[        5      (       a  UR                  US   5        M  UR                  U5        M  US:X  a+  [        U[        5      (       d   eUR                  U5        GM  Ub   eUR                  U5        GM2     U" U6 n[        U[        5      (       a  [        [        U5      5       H  nX   nU[         U   R                  5       ;   d   e[         U   U   nUUR                  5       ;   d  MF  [        UU   [        5      (       a>  [        [        UU   5      5       H!  nUU   U   R                  UU   U   S5        M#     M  UU   S   R                  UU   S5        M     g [        U[        5      (       ax  [        UR                  5       5      S:X  d   e[        [        UR                  5       5      5      n[        [        U5      5       H  nUU   U   R                  UU   S5        M      g [        UR                  5       5      S:X  d   e[        [        UR                  5       5      5      n[        UU   [        5      (       a  UU   S   R                  US5        g UU   R                  US5        g )Nr    r>   r   r?   FrB   )name_mappingrI   r   rC   get_core_ops_args_infoget_core_ops_args_type_infoget_core_ops_returns_inforG   rH   rK   rL   r?   rQ   rR   rN   rO   )r5   rS   rT   rU   rV   rW   rX   rY   rD   rE   rF   rZ   r[   r\   r]   r^   eager_arg_namera   r`   r_   rg   eager_retnamerj   ri   rh   s                            r7   eager_trace_opTracer.eager_trace_op   sY    ,++----w'8w/#::<"("D"D"F & @ @ B$-.7*3
s7|$A$ZN#H!\'%:%?%?%AAAA#G,^<H6;;=( &x 0W\\^+ ' 1UZZ\)h"n %h !%2~.X%mT22OOM!$45OOM2V#!-6666.$,,,.= %@ )gu%%3z?+ *$W(=(B(B(DDDD&w/>glln,!'!*d33!&s71:!7A#G,Q/AA '
1u "8
  (+==gaj%P , &&w||~&!+++tGLLN+,C3w<(Q11'!*eD ) w||~&!+++tGLLN+,C'#,--Q11'5A..w>r9   c                    [         R                  " 5       (       ab  U[        R                  5       ;   a6  [        U   S   nU[        R
                  ;   d   eU R                  XX4XV5        g U R                  XX4XV5        g [        S5      e)Nr   z#trace_op only  work in dygraph mode)	r   in_dygraph_modero   rI   r   rC   ru   rk   
ValueError)r5   typerT   rU   rV   rW   rX   s          r7   trace_opTracer.trace_op+  s     $$&& |((**#D)/:}55555##'- **'- BCCr9   c                     SU l         g r1   r4   r5   s    r7   
train_modeTracer.train_modeE  s
    r9   c                     SU l         g )NFr~   r   s    r7   	eval_modeTracer.eval_modeH  s
     r9   r~   )FN)__name__
__module____qualname____firstlineno____doc__r3   rk   ru   r{   r   r   __static_attributes____classcell__)r6   s   @r7   r.   r.   ^   sH    
  d?X S?v D4 ! !r9   r.   N)paddler   r   paddle.baser   r   ro   rp   rD   rq   rE   rr   rF   r.    r9   r7   <module>r      s     ) ' +    "   !  # $ %(&(*
gDL #99; 'CCE %??A k!T[[ k!r9   