Ë
    †\;j>-  ã                   ó  — d dl mZmZ d dlmZmZ ddddddd	œd
ddddddœddddœddddœddddœdddddddœddddddddd d!œ	d"œZ ej                  «       Z ej                  «       Z
 ej                  «       Z G d#„ d$ej                  «      Zy%)&é    )Ú_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                   óR   ‡ — e Zd ZdZˆ fd„Z	 	 dd„Z	 	 dd„Z	 	 dd„Zd„ Zd„ Z	ˆ xZ
S )	ÚTraceraä  
    :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         ‰| �  «        d| _        y ©NT)ÚsuperÚ__init__Ú_train_mode)ÚselfÚ	__class__s    €úcG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\paddle/base/dygraph/tracer.pyr2   zTracer.__init__k   s   ø€ Ü‰ÑÔàˆÕó    c                 ó^  — t         j                  |   }t        |   }t        |   }	t        |   }
g }t        t        |«      «      D �][  }d }||   }|	|   }||j                  «       v r||   }n�||j                  «       v r||   }nwd|dd  v r*|d d }||j                  «       v sJ ‚t        ||   «      }|}nFd|dd  v r?|d d }t        |«       ||j                  «       v r||   }n||j                  «       v r||   }|€|j                  |«       ŒË|dk(  r8t        |t        «      r|j                  |d   «       Œõ|j                  |«       �Œ|dk(  r%t        |t        «      sJ ‚|j                  |«       �Œ2|dk(  sJ ‚t        |t        «      sJ ‚|j                  |«       �Œ^ g }|j                  «       D ]'  \  }}|j                  |«       |j                  |«       Œ)  |g |¢|¢­Ž }|dk(  rnt        |j                  «       «      d	k(  sJ ‚t        |j                  «       «      d   }t        t        |«      «      D ]  }||   j                  ||   |   «       Œ y t        |t        «      rÇt        t        |
«      «      D ]¯  }|
|   }||j                  «       v sŒt        ||   t        «      r;t        t        ||   «      «      D ]   }||   |   j!                  ||   |   d
«       Œ" Œit        ||   t        «      r||   d   j!                  ||   d
«       Œ˜||   j!                  ||   d
«       Œ± y t        |t        «      rot        |j                  «       «      d	k(  sJ ‚t        |j                  «       «      d   }t        t        |«      «      D ]  }||   |   j!                  ||   d
«       Œ y t        |j                  «       «      d	k(  sJ ‚t        |j                  «       «      d   }t        ||   t        «      r||   d   j!                  |d
«       y ||   j!                  |d
«       y )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Ú_share_underline_tensor_toÚtupleÚreconstruct_from_)r4   Ú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                            r6   Úeager_legacy_trace_opzTracer.eager_legacy_trace_opp   s  € ô %×-Ñ-¨gÑ6ˆä$ WÑ-ˆÜ.¨wÑ7ˆÜ*¨7Ñ3ˆ
àˆÜ”s˜7“|×$ˆAà ˆMà˜q‘zˆHØ# A‘ˆHØ˜6Ÿ;™;›=Ñ(Ø & xÑ 0‘Ø˜WŸ\™\›^Ñ+Ø '¨Ñ 1‘à˜H R S˜MÑ)à'¨¨˜}�HØ# w§|¡|£~Ñ5Ð5Ð5Ü" 7¨8Ñ#4Ó5�HØ$,‘Mà˜h r s˜mÑ+Ø'¨¨˜}�HÜ˜(”OØ 7§<¡<£>Ñ1Ø(/°Ñ(9™Ø! V§[¡[£]Ñ2Ø(.¨xÑ(8˜àÐ$Ø—‘ Õ.Ø˜XÒ%Ü˜m¬TÔ2Ø—O‘O M°!Ñ$4Õ5à—O‘O MÖ2Ø˜VÒ#Ü! -´Ô6Ð6Ð6Ø—‘ Ö.à 5Ò(Ð(Ð(Ü! -´Ô5Ð5Ð5Ø—‘ Ö.ðO %ðR ˆ
Ø—K‘K–M‰DˆAˆqØ×Ñ˜aÔ Ø×Ñ˜aÕ ð "ñ Ð6 Ð6¨:Ò6ˆà�nÒ$Ü�w—|‘|“~Ó&¨!Ò+Ð+Ð+Ü�w—|‘|“~Ó& qÑ)ˆCÜœ3˜w›<Ö(�Ø˜‘
×5Ñ5°g¸c±lÀ1±oÕFð )àä�gœuÔ%Üœ3˜z›?Ö+�Ø$ Q™-�Ø˜gŸl™l›nÒ,ä! '¨!¡*¬dÔ3Ü!&¤s¨7°1©:£Ö!7˜AØ# GÑ,¨QÑ/×AÑAØ '¨¡
¨1¡¨uõñ "8ô
 & g¨gÑ&6¼Ô=Ø# GÑ,¨QÑ/×AÑAØ '¨¡
¨Eõð $ GÑ,×>Ñ>Ø '¨¡
¨Eõñ ,ô$ ˜¤Ô&Ü�w—|‘|“~Ó&¨!Ò+Ð+Ð+Ü�w—|‘|“~Ó& qÑ)ˆCÜœ3˜w›<Ö(�Ø˜‘˜Q‘×1Ñ1°'¸!±*¸eÕDñ )ô �w—|‘|“~Ó&¨!Ò+Ð+Ð+Ü�w—|‘|“~Ó& qÑ)ˆCÜ˜' #™,¬Ô-Ø˜‘˜Q‘×1Ñ1°'¸5ÕAà˜‘×.Ñ.¨w¸Õ>r7   c                 ó  — |t         j                  «       v sJ ‚t         |   d   }t        j                  |   }t        j                  «       }t        j
                  «       }	t        j                  «       }
||   }|	|   }|
|   }g }t        t        |«      «      D �]  }||   }||   }|t         |   j                  «       v sJ ‚t         |   |   }||j                  «       v r||   }n7||j                  «       v r||   }n||j                  «       v r|dk(  r||   }nd }|dk(  r|j                  |«       Œ›|dk(  r7t        |t        «      r|j                  |d   «       ŒÅ|j                  |«       Œ×|dk(  r%t        |t        «      sJ ‚|j                  |«       �Œ|�J ‚|j                  |«       �Œ  ||Ž }t        |t        «      rÂt        t        |«      «      D ]ª  }||   }|t         |   j                  «       v sJ ‚t         |   |   }||j                  «       v sŒBt        ||   t        «      r;t        t        ||   «      «      D ]   }||   |   j                  ||   |   d«       Œ" Œ�||   d   j                  ||   d«       Œ¬ y t        |t        «      rot        |j                  «       «      dk(  sJ ‚t        |j                  «       «      d   }t        t        |«      «      D ]  }||   |   j                  ||   d«       Œ y t        |j                  «       «      dk(  sJ ‚t        |j                  «       «      d   }t        ||   t        «      r||   d   j                  |d«       y ||   j                  |d«       y )Nr   Ú r<   r   r=   Fr@   )Úname_mappingrG   r   rA   Úget_core_ops_args_infoÚget_core_ops_args_type_infoÚget_core_ops_returns_inforE   rF   rI   rJ   r=   rM   rN   )r4   rO   rP   rQ   rR   rS   rT   rU   rB   rC   rD   rV   rW   rX   rY   rZ   Úeager_arg_namer]   r\   r[   rc   Úeager_retnamerf   re   rd   s                            r6   Úeager_trace_opzTracer.eager_trace_opÖ   sS  € ð œ,×+Ñ+Ó-Ñ-Ð-Ð-ä˜wÑ'¨Ñ8ˆÜ—‘ wÑ/ˆä#×:Ñ:Ó<ÐÜ"(×"DÑ"DÓ"FÐÜ &× @Ñ @Ó BÐà$ WÑ-ˆØ.¨wÑ7ˆØ*¨7Ñ3ˆ
àˆÜ”s˜7“|×$ˆAØ$ Q™ZˆNØ# A‘ˆHà!¤\°'Ñ%:×%?Ñ%?Ó%AÑAÐAÐAÜ# GÑ,¨^Ñ<ˆHà˜6Ÿ;™;›=Ñ(Ø & xÑ 0‘Ø˜WŸ\™\›^Ñ+Ø '¨Ñ 1‘Ø˜UŸZ™Z›\Ñ)¨h¸"ªnØ % h¡‘ð !%�à˜2Š~à—‘ Õ.Ø˜XÒ%Ü˜m¬TÔ2Ø—O‘O M°!Ñ$4Õ5à—O‘O MÕ2Ø˜VÒ#Ü! -´Ô6Ð6Ð6Ø—‘ Ö.à$Ð,Ð,Ð,Ø—‘ Ö.ð= %ñ@  Ð)ˆä�gœuÔ%Üœ3˜z›?Ö+�Ø *¨1¡�à$¬°WÑ(=×(BÑ(BÓ(DÑDÐDÐDÜ& wÑ/°Ñ>�Ø˜gŸl™l›nÒ,ä! '¨!¡*¬dÔ3Ü!&¤s¨7°1©:£Ö!7˜AØ# GÑ,¨QÑ/×AÑAØ '¨¡
¨1¡¨uõñ "8ð
   Ñ(¨Ñ+×=Ñ=¸gÀa¹jÈ%ÕPñ ,ô ˜¤Ô&Ü�w—|‘|“~Ó&¨!Ò+Ð+Ð+Ü�w—|‘|“~Ó& qÑ)ˆCÜœ3˜w›<Ö(�Ø˜‘˜Q‘×1Ñ1°'¸!±*¸eÕDñ )ô �w—|‘|“~Ó&¨!Ò+Ð+Ð+Ü�w—|‘|“~Ó& qÑ)ˆCÜ˜' #™,¬Ô-Ø˜‘˜Q‘×1Ñ1°'¸5ÕAà˜‘×.Ñ.¨w¸Õ>r7   c                 ó  — t        j                  «       rd|t        j                  «       v r7t        |   d   }|t        j
                  v sJ ‚| j                  ||||||«       y | j                  ||||||«       y t        d«      ‚)Nr   z#trace_op only  work in dygraph mode)	r   Úin_dygraph_moderj   rG   r   rA   rp   rg   Ú
ValueError)r4   ÚtyperP   rQ   rR   rS   rT   s          r6   Útrace_opzTracer.trace_op+  sŒ   € ô ×$Ñ$Ô&ð ”|×(Ñ(Ó*Ñ*Ü# DÑ)¨/Ñ:�àœ}×5Ñ5Ñ5Ð5Ð5Ø×#Ñ#Ø˜& '¨5°-Àõð ×*Ñ*Ø˜& '¨5°-Àõô ÐBÓCÐCr7   c                 ó   — d| _         y r0   ©r3   ©r4   s    r6   Ú
train_modezTracer.train_modeE  s
   € ØˆÕr7   c                 ó   — d| _         y )NFrw   rx   s    r6   Ú	eval_modezTracer.eval_modeH  s
   € Ø ˆÕr7   )FN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r2   rg   rp   ru   ry   r{   Ú__classcell__)r5   s   @r6   r.   r.   ^   sC   ø„ ñ
ô ð Øód?ðX ØóS?ðv ØóDò4 ö!r7   r.   N)Úpaddler   r   Úpaddle.baser   r   rj   rk   rB   rl   rC   rm   rD   r.   © r7   r6   Ú<module>r„      sû   ð÷  )ß 'ð +ØØ Ø ØØ ñð "Ø Ø ØØØñð !ØØñð ØØñð #ØØñð $ØØØØØñð %ØØØØ(Ø&Ø(Ø*Øñ
ñgD€ðL :�]×9Ñ9Ó;Ð ØC˜-×CÑCÓEÐ Ø?˜×?Ñ?ÓAÐ ôk!ˆT�[‰[õ k!r7   