Ë
    Ž\;jšC  ã                   ó  — d dl Z d dlZd dlZd dlmZ ddlmZ d„ Zd„ Zd„ Z	d[d„Z
d[d	„Zd[d
„Zd„ Zd\d„Zd„ Zd„ Z	 	 	 	 d]d„Zd„ Z edddd«      d[d„«       Z edddd«      d[d„«       Z edddd«      d[d„«       Z edddd«      d[d„«       Z eddd«      d[d„«       Z eddd«      d[d„«       Z ed dd«      d[d!„«       Z ed"dd«      d[d#„«       Z ed$dd«      d[d%„«       Z ed&dd«      d[d'„«       Z ed(dd«      d[d)„«       Z ed*dd«      d[d+„«       Z ed,dd«      d^d-„«       Z ed.dd/«      d_d0„«       Z  ed1d2d«      d_d3„«       Z! ed4dd«      d`d5„«       Z" ed6ddd«      d[d7„«       Z# ed8dd«      d[d9„«       Z$ ed:ddd«      d[d;„«       Z% ed<dd=d«      d[d>„«       Z& ed?ddd=d«      d[d@„«       Z' edAdd«      d[dB„«       Z( edCdDddd«      d[dE„«       Z) edFddd«      d[dG„«       Z* edHddd«      d[dI„«       Z+ edJddd«      d[dK„«       Z, edLddd«      d[dM„«       Z- edNddd«      d[dO„«       Z. edPddd«      d[dQ„«       Z/ edRdd«      d[dS„«       Z0 edTdd«      d[dU„«       Z1 edVdd«      d[dW„«       Z2 edXdY«      d^dZ„«       Z3y)aé    N)ÚLayerHelperé   )ÚREGISTER_FNc                 óä   — | j                   }t        t        | j                  j                  d«      «      \  }}|€| j                  |j                  ¬«      }| j                  |d|id|ii ¬«       |S )N©ÚxÚout©ÚdtypeÚXÚY©ÚtypeÚinputsÚoutputsÚattrs©Ú
layer_typeÚtupleÚmapÚkwargsÚgetÚ"create_variable_for_type_inferencer   Ú	append_op)ÚhelperÚoptyper   r	   s       úiG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\paddle/incubate/autograd/primops.pyÚ_simple_unopr      sl   € Ø×Ñ€FÜ”3�v—}‘}×(Ñ(¨,Ó7Ó8�F€A€sØ
€{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆà
×Ñ˜&¨#¨q¨¸CÀ¸:ÈRÐÔPØ€Jó    c                 óè   — | j                   }t        t        | j                  j                  d«      «      \  }}}|€| j                  |j                  ¬«      }| j                  |||dœd|ii ¬«       |S )N©r   Úyr	   r
   ©r   r   ÚZr   r   )r   r   r   r"   r	   s        r   Ú_simple_binopr%   "   sw   € Ø×Ñ€FÜ”c˜&Ÿ-™-×+Ñ+Ð->Ó?Ó@�I€A€qˆ#Ø
€{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆà
×ÑØ !¨!Ñ,°s¸C°jÈð ô ð €Jr   c                 óD  — | j                   }t        t        | j                  j                  d«      «      \  }}dD �ci c]   }|| j                  v r|| j                  |   “Œ" }}|€| j                  |j                  ¬«      }| j                  |d|id|i|¬«       |S c c}w )Nr   )ÚshapeÚaxisÚindexr
   r   r   r   r   )r   r   r   r	   Úkr   s         r   Ú_manipulation_unopr+   .   s¶   € Ø×Ñ€FÜ”3�v—}‘}×(Ñ(¨,Ó7Ó8�F€A€sñ ,óá+ˆAØ�—‘Ñð 	
ˆ6�=‰=˜ÑÑØ+ð 
ð ð €{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆà
×ÑØ˜S !˜H¨s°C¨jÀð ô ð €Jùòs   ½%Bc                 óž   — | ||dœ}t        di t        «       ¤Ž}|€|j                  |«      }|j                  |j                  d|i|¬«       |S )N)Úvaluer'   r   r   ©r   r   r   )Úfill_constant_p©r   Úlocalsr   r   r   )r-   r'   r   r	   r   r   s         r   Ú
fill_constr2   B   sV   € Ø e°eÑ<€EÜÑ7¬f«hÑ7€FØ
€{Ø×7Ñ7¸Ó>ˆØ
×Ñ˜&×+Ñ+°c¸3°ZÀuÐÔMØ€Jr   c                 óž   — | ||dœ}t        di t        «       ¤Ž}|€|j                  |«      }|j                  |j                  d|i|¬«       |S )N)r'   r   Úpr   r.   )Úbernoulli_pr0   )r'   r   r4   r	   r   r   s         r   Ú	bernoullir6   K   sV   € Ø e°!Ñ4€EÜÑ3¬&«(Ñ3€FØ
€{Ø×7Ñ7¸Ó>ˆØ
×Ñ˜&×+Ñ+°c¸3°ZÀuÐÔMØ€Jr   c                 ó\   — t        d| j                  | j                  «      }t        || «      S )Ng        )r2   r'   r   Úsub)r   r	   Úzeros      r   Únegr:   T   s$   € Ü�c˜1Ÿ7™7 A§G¡GÓ,€DÜˆt�Q‹<Ðr   c                 ó˜   — | |u sJ d«       ‚||||dœ}t        di t        «       ¤Ž}|j                  |j                  | |dœd|i|¬«       |S )Nz0x and out should be the same Tensor in set_value)ÚaxesÚstartsÚendsÚsteps)ÚInputÚValueTensorÚOutr   )Ú	set_value)r   r1   r   r   ©	r   r"   r(   r=   r>   Ústridesr	   r   r   s	            r   rC   rC   Y   sf   € Ø�‰8ÐGÐGÓGˆ8Ø V°TÀGÑL€EÜÑ1¬«Ñ1€FØ
×ÑØ×ÑØ¨1Ñ-Ø˜�Øð	 ô ð €Jr   c                 óV  — |xs( t        t        dt        | j                  «      «      «      }t	        | ||¬«      }t        |j                  t        j                  t        j                  |D �cg c]  }| j                  |   ‘Œ c}«      |j                  ¬«      }t        ||«      S c c}w )Nr   ©r(   Úkeepdim)r'   r-   r   )r   ÚrangeÚlenr'   Ú
reduce_sumr2   Ú	functoolsÚreduceÚoperatorÚmulr   Údiv)r   r(   rH   r<   ÚsumÚnorms         r   ÚmeanrS   f   s…   € ØÒ0”5œ˜q¤# a§g¡g£,Ó/Ó0€DÜ
�Q˜T¨7Ô
3€CÜØ�i‰iÜ×ÑœxŸ|™|ÉÓ-MÉÀ¨a¯g©g°d«mÈÑ-MÓNØ�i‰iô€Dô
 ˆs�D‹>Ðùò .Ns   Á-B&c                 ó   — t        d| |«      S )Nr   ©r2   ©r'   r   s     r   ÚonesrW   q   ó   € Ü�a˜ Ó&Ð&r   c                 ó   — t        d| |«      S )Nr   rU   rV   s     r   ÚzerosrZ   u   rX   r   c
                 ó"  ‡‡— t        ˆfd„t        t        | j                  «      «      D «       «      Št        ˆfd„t	        | j                  «      D «       «      }
t        |j                  |j                  «      }t        |j                  |j                  «      }|�s�t        | ‰d¬«      }t        t        t        | t        || j                  «      «      «      ‰d¬«      }t        t        | t        || j                  «      «      t        t        t        || j                  «      t        || j                  |j                  «      «      «      «      }t        ||j                  |j                  «      }t        t        ||«      t        t        t!        |j                  |j                  «      |«      t#        ||j                  «      «      «      }t        t        ||«      t        t        t!        |j                  |j                  «      |«      t#        ||j                  «      «      «      }n„t        t        | t        t#        ||
«      | j                  «      «      t        t        t        t#        ||
«      | j                  «      t        || j                  | j                  «      «      «      «      }t        t        t        t#        ||
«      |j                  «      |«      t        t#        ||
«      |j                  «      «      }|	r||	||||fS |||||fS )aÙ  batch normalizer.

    Args:
        x (Tensor): A tensor to be normalized.
        axis (int): The features axis.
        gamma (Tensor): The scale factor.
        beta (float): The shift factor.
        run_mean (Tensor): Running mean.
        run_var (Tensor): Running variance.
        eps (float, optional): A value added to the denominator for numerical
            stability. Defaults to 1e-5.
        momentum (float, optional): The value used for the running_mean and
            running_var computation. Can be set to None for cumulative moving
            average (i.e. simple average). Defaults to 0.9.
        use_run_stat (bool, optional): Whether or not using runing statistics.
            Defaults to False.
    c              3   ó.   •K  — | ]  }|‰k7  sŒ	|–— Œ y ­w©N© )Ú.0Úir(   s     €r   Ú	<genexpr>zbatch_norm.<locals>.<genexpr>–   s   øè ø€ ÐDÑ#6˜a¸!¸t»)œÑ#6ùs   ƒ
Žc              3   ó4   •K  — | ]  \  }}|‰v rd n|–— Œ y­w)r   Nr^   )r_   r`   ÚsÚreduce_axess      €r   ra   zbatch_norm.<locals>.<genexpr>—   s&   øè ø€ ð Ù1C©¨¨AˆQ�+Ñ‰ 1Ó$Ñ1Cùs   ƒT)rH   )r   rI   rJ   r'   Ú	enumeraterZ   r   rS   Úsquarer8   Ú	broadcastrP   ÚsqrtÚaddr2   rO   rW   Úreshape)r   r(   ÚgammaÚbetaÚrun_meanÚrun_varÚepsÚmomentumÚuse_run_statÚreserve_spaceÚstats_shapeÚ
batch_meanÚ	batch_varÚx_hatr"   rd   s    `             @r   Ú
batch_normrw   y   sa  ù€ ô: ÓD¤5¬¨Q¯W©W«Ô#6ÓDÓD€KÜó Ü1:¸1¿7¹7Ô1Cóó €Kô �x—~‘~ x§~¡~Ó6€JÜ�g—m‘m W§]¡]Ó3€IâÜ˜!˜[°$Ô7ˆ
ÜÜ”3�qœ) J°·±Ó8Ó9Ó:ØØô
ˆ	ô
 Ü�”9˜Z¨¯©Ó1Ó2ÜÜÜ˜i¨¯©Ó1Ü˜s A§G¡G¨Y¯_©_Ó=óóó
ˆô ˜h¨¯©¸¿¹ÓGˆÜÜ�˜(Ó#ÜÜ”D˜Ÿ™¨¯©Ó8¸(ÓCÜ˜
 H§N¡NÓ3óó
ˆô Ü�˜'Ó"ÜÜ”D˜Ÿ™¨¯©Ó6¸ÓAÜ˜	 7§=¡=Ó1óó
‰ô Ü�”9œW X¨{Ó;¸Q¿W¹WÓEÓFÜÜÜœg g¨{Ó;¸Q¿W¹WÓEÜ˜s A§G¡G¨Q¯W©WÓ5óóó
ˆô 	ÜŒI”g˜e [Ó1°5·;±;Ó?ÀÓGÜ”'˜$ Ó,¨e¯k©kÓ:ó	€Añ
 Ø˜¨
°I¸wÈÐIÐIà˜ Y°¸Ð:Ð:r   c                 óX   — t        | t        d| j                  | j                  «      «      S )Ng       @)Úpowr2   r'   r   )r   s    r   rf   rf   Ó   s    € Üˆq”*˜S !§'¡'¨1¯7©7Ó3Ó4Ð4r   Úadd_pr   r   r$   c                 ó:   — t        t        di t        «       ¤Ž«      S )N)rz   ©r%   r   r1   r!   s      r   ri   ri   ×   ó   € äœÑ9´³Ñ9Ó:Ð:r   Úsub_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r~   r|   r!   s      r   r8   r8   Ü   r}   r   Úmul_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r€   r|   r!   s      r   rO   rO   á   r}   r   Údiv_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r‚   r|   r!   s      r   rP   rP   æ   r}   r   Úsqrt_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r„   ©r   r   r1   r   s     r   rh   rh   ë   ó   € äœÑ9´³Ñ9Ó:Ð:r   Útanh_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rˆ   r†   r   s     r   ÚtanhrŠ   ð   r‡   r   Úsin_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r‹   r†   r   s     r   Úsinr�   õ   ó   € äœÑ8¬v«xÑ8Ó9Ð9r   Úcos_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r�   r†   r   s     r   Úcosr‘   ú   rŽ   r   Úexp_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r’   r†   r   s     r   Úexpr”   ÿ   rŽ   r   Úabs_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r•   r†   r   s     r   Úabsr—     rŽ   r   Ú	reshape_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)r˜   ©r+   r   r1   ©r   r'   r	   s      r   rj   rj   	  s   € äœkÑB¼»ÑBÓCÐCr   Úbroadcast_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rœ   rš   r›   s      r   rg   rg     ó   € äœkÑD¼6»8ÑDÓEÐEr   Útranspose_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rŸ   rš   )r   r(   r	   s      r   Ú	transposer¡     rž   r   Úsplit_pÚYSc                 ó†  — t        |t        t        f«      rt        |«      }n*t        |t        «      st        dt        |«      › d�«      ‚|}||dœ}t        di t        «       ¤Ž}|€2t        |«      D �cg c]  }|j                  | j                  ¬«      ‘Œ  }}|j                  |j                  d| id|i|¬«       |S c c}w )	Nz%num_or_sections must be int, but got Ú.)Únum_or_sectionsr(   r
   r   r£   r   )r¢   )Ú
isinstanceÚlistr   rJ   ÚintÚ	TypeErrorr   r   r1   rI   r   r   r   r   )r   r¦   r(   ÚoutsÚnr   r   r`   s           r   Úsplitr­     sÛ   € ä�/¤D¬% =Ô1Ü�Ó ‰ä˜/¬3Ô/ÜØ7¼¸_Ó8MÐ7NÈaÐPóð ð ˆà /¸Ñ>€EäÑ/¤f£hÑ/€FØ€|ô ˜1”Xó
á�ð ×5Ñ5¸A¿G¹GÐ5ÕDØð 	ð 
ð ×ÑØ×ÑØ�QˆxØ�t�Øð	 ô ð €Kùò
s   Á4#B>Úconcat_pÚXSc                 ó  — t        | t        j                  j                  j                  «      r| g} d|i}t        di t        «       ¤Ž}|€|j                  | d   j                  ¬«      }|j                  |j                  d| id|i|¬«       |S )Nr(   r   r
   r¯   r   r   )r®   )r§   ÚpaddleÚbaseÚ	frameworkÚVariabler   r1   r   r   r   r   )Úxsr(   r	   r   r   s        r   Úconcatr¶   4  s�   € ä�"”f—k‘k×+Ñ+×4Ñ4Ô5ØˆTˆØ�TˆN€EÜÑ0¤v£xÑ0€FØ
€{Ø×7Ñ7¸bÀ¹e¿k¹kÐ7ÓJˆØ
×ÑØ×ÑØ�bˆzØ�c�
Øð	 ô ð €Jr   Úreduce_sum_pc                 óâ  — |xs( t        t        dt        | j                  «      «      «      }t	        |t
        «      r|fn|}t	        |t         t        f«      st        dt        |«      › �«      ‚t	        |t        «      st        dt        |«      › �«      ‚||dœ}t        d	i t        «       ¤Ž}|€|j                  | j                  ¬«      }|j                  |j                  d| id|i|¬«       |S )
Nr   z$axis must be tuple or list, but got zkeepdim must be bool, but got rG   r
   r   r   r   )r·   )r   rI   rJ   r'   r§   r©   r¨   rª   r   Úboolr   r1   r   r   r   r   )r   r(   rH   r	   r<   r   r   s          r   rK   rK   E  sÞ   € àÒ0”5œ˜q¤# a§g¡g£,Ó/Ó0€DÜ  ¤sÔ+ˆD‰7°€DÜ�dœU¤D˜MÔ*ÜÐ>¼tÀD»z¸lÐKÓLÐLÜ�gœtÔ$ÜÐ8¼¸g»¸ÐHÓIÐIà gÑ.€EÜÑ4¬6«8Ñ4€FØ
€{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆà
×ÑØ×Ñ¨¨Q x¸#¸s¸È5ð ô ð €Jr   Úmatmul_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rº   r|   r!   s      r   Úmatmulr¼   Y  s   € äœÑ<´6³8Ñ<Ó=Ð=r   Úslice_select_pc                 ó¬  — t        |t        t        f«      st        dt	        |«      › d�«      ‚t        |t        t        f«      st        dt	        |«      › d�«      ‚t        |t        t        f«      st        dt	        |«      › d�«      ‚t        |«      t        |«      cxk(  rt        |«      cxk(  rt        |«      k(  s9n J dt        |«      › dt        |«      › dt        |«      › dt        |«      › �«       ‚||||d	œ}t        di t        «       ¤Ž}|€|j                  | j                  ¬
«      }|j                  |j                  d| id|i|¬«       |S )NzFArgument type error. `axis` is supposed to be list or tuple but found r¥   zHArgument type error. `starts` is supposed to be list or tuple but found zFArgument type error. `ends` is supposed to be list or tuple but found zRlen(axis), len(starts), len(ends) and len(strides) should be equal, but len(axis)=z, len(starts)=ú, len(ends)=z and len(strides)=©r(   r=   r>   rE   r
   r   r   r   )r½   )r§   r¨   r   rª   r   rJ   r   r1   r   r   r   r   )r   r(   r=   r>   rE   r	   r   r   s           r   Úslice_selectrÁ   ^  sj  € ä�dœT¤5˜MÔ*Üð Ü $ T£
˜|¨1ð.ó
ð 	
ô �fœt¤U˜mÔ,Üð Ü $ V£˜~¨Qð0ó
ð 	
ô �dœT¤5˜MÔ*Üð Ü $ T£
˜|¨1ð.ó
ð 	
ô ˆt‹9œ˜F›Ô@¤s¨4£yÔ@´C¸³LÔ@ð ðÜ˜T›˜ >´#°f³+°ð ?Ü˜“Y�KÐ1´#°g³,°ð	AóÐ@ð  V°TÀgÑN€EÜÑ6¬V«XÑ6€FØ
€{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆØ
×ÑØ×Ñ¨¨Q x¸#¸s¸È5ð ô ð €Jr   Úslice_assign_pc                 óX  — t        |«      t        |«      cxk(  rt        |«      cxk(  rt        |«      k(  s9n J dt        |«      › dt        |«      › dt        |«      › dt        |«      › �«       ‚t        |j                  «      t        | j                  «      k(  s4J dt        |j                  «      › dt        | j                  «      › d�«       ‚||||dœ}t        di t        «       ¤Ž}|€|j	                  | j
                  ¬	«      }|j                  |j                  | |d
œd|i|¬«       |S )NzTlen(starts), len(ends), len(strides) and len(axis) should be equal, but len(starts)=r¿   z, len(strides)=z and len(axis)=z?len(y.shape) should be equal to len(x.shape), but len(y.shape)=z and len(x.shape)=r¥   rÀ   r
   r#   r$   r   )rÂ   ©rJ   r'   r   r1   r   r   r   r   rD   s	            r   Úslice_assignrÅ     s'  € äˆv‹;œ#˜d›)Ô@¤s¨7£|Ô@´s¸4³yÔ@ð ðÜ˜v›;˜- |´C¸³I°;ð ?Ü˜G›�~ _´S¸³Y°Kð	AóÐ@ô
 ˆq�w‰w‹<œ3˜qŸw™w›<Ò'ð ðÜ §¡›L˜>Ð);¼CÀÇÁ»L¸>Èð	LóÐ'ð
  V°TÀgÑN€EÜÑ6¬V«XÑ6€FØ
€{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆØ
×ÑØ×ÑØ˜QÑØ�c�
Øð	 ô ð €Jr   Úgather_pÚIndexTensorc                 ó¸   — d|i}t        di t        «       ¤Ž}|€|j                  | j                  ¬«      }|j	                  |j
                  | |dœd|i|¬«       |S )Nr(   r
   )r   rÇ   r   r   )rÆ   )r   r1   r   r   r   r   )r   Úindextensorr(   r	   r   r   s         r   ÚgatherrÊ   ˜  sk   € à�TˆN€EÜÑ0¤v£xÑ0€FØ
€{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆØ
×ÑØ×ÑØ {Ñ3Ø�c�
Øð	 ô ð €Jr   Úscatter_add_pc                 ór  — t        | j                  «      t        |j                  «      k(  s4J dt        | j                  «      › dt        |j                  «      › d�«       ‚t        |j                  «      dk(  sJ dt        |j                  «      › d�«       ‚|j                  |   |j                  d   k(  s(J d|j                  |   › d|j                  d   › d�«       ‚d	|i}t        di t        «       ¤Ž}|€|j	                  | j
                  ¬
«      }|j                  |j                  | ||dœd|i|¬«       |S )Nz?len(x.shape) should be equal to len(y.shape), but len(x.shape)=z and len(y.shape)=r¥   r   z3len(indextensor.shape) must be equal to 1, but got r   zIy.shape[axis] should be equal to indextensor.shape[0], but y.shape[axis]=z and indextensor.shape[0]=r(   r
   )r   r   rÇ   r$   r   )rË   rÄ   )r   r"   rÉ   r(   r	   r   r   s          r   Úscatter_addrÍ   §  sQ  € äˆq�w‰w‹<œ3˜qŸw™w›<Ò'ð ðÜ §¡›L˜>Ð);¼CÀÇÁ»L¸>Èð	LóÐ'ô
 	ˆK×ÑÓ !Ò#ðWà	<¼SÀ×ARÑARÓ=SÐ<TÐTUÐVóWØ#à�7‰7�4‰=˜K×-Ñ-¨aÑ0Ò0ð ðØŸW™W T™]˜Oð , Ø +× 1Ñ 1°!Ñ 4Ð5°Qð	8óÐ0ð
 �TˆN€EÜÑ5¬F«HÑ5€FØ
€{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆØ
×ÑØ×ÑØ˜Q¨{Ñ;Ø�c�
Øð	 ô ð €Jr   Úlog_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rÎ   r†   r   s     r   ÚlogrÐ   Â  rŽ   r   Úselect_pÚ	Conditionc                 ó`  — t        | j                  «      t        |j                  «      k7  rAt        dj                  t        | j                  «      t        |j                  «      «      «      ‚t        |j                  «      t        |j                  «      k7  rAt        dj                  t        |j                  «      t        |j                  «      «      «      ‚t	        di t        «       ¤Ž}|€|j                  |j                  ¬«      }|j                  |j                  | ||dœd|i¬«       |S )Nz\len(cond.shape) should be equal to len(x.shape), but len(cond.shape)={} and len(x.shape)={}.zVlen(x.shape) should be equal to len(y.shape), but len(x.shape)={} and len(y.shape)={}.r
   )rÒ   r   r   r$   )r   r   r   )rÑ   )
rJ   r'   Ú
ValueErrorÚformatr   r1   r   r   r   r   )Úcondr   r"   r	   r   s        r   Úselectr×   Ç  sõ   € ä
ˆ4�:‰:ƒœ#˜aŸg™g›,Ò&ÜØj×qÑqÜ�D—J‘J“¤ Q§W¡W£óó
ð 	
ô ˆ1�7‰7ƒ|”s˜1Ÿ7™7“|Ò#ÜØd×kÑkÜ�A—G‘G“œc !§'¡'›lóó
ð 	
ô Ñ0¤v£xÑ0€FØ
€{Ø×7Ñ7¸a¿g¹gÐ7ÓFˆØ
×ÑØ×ÑØ!¨°Ñ2Ø�c�
ð ô ð
 €Jr   Úeq_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rØ   r|   r!   s      r   ÚeqrÚ   â  ó   € äœÑ8¬v«xÑ8Ó9Ð9r   Úgt_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rÜ   r|   r!   s      r   ÚgtrÞ   ç  rÛ   r   Úge_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rß   r|   r!   s      r   Úgerá   ì  rÛ   r   Úne_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)râ   r|   r!   s      r   Únerä   ñ  rÛ   r   Úpow_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rå   r|   r!   s      r   ry   ry   ö  r}   r   Úmax_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rç   r|   r!   s      r   Úmaxré   û  r}   r   Úerf_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rê   r†   r   s     r   Úerfrì      rŽ   r   Úcast_pc                 óœ   — t        di t        «       ¤Ž}|€|j                  |«      }|j                  |j                  d| id|id|i¬«       |S )Nr   r   r   r   )rí   r0   )r   r   r	   r   s       r   Úcastrï     s_   € äÑ.¤V£XÑ.€FØ
€{Ø×7Ñ7¸Ó>ˆØ
×ÑØ×ÑØ�QˆxØ�c�
Ø˜Ðð	 ô ð €Jr   Úrsqrt_pc                 ó:   — t        t        di t        «       ¤Ž«      S )N)rð   r†   r   s     r   Úrsqrtrò     s   € äœÑ:´³Ñ:Ó;Ð;r   Úuniform_random_prB   c                 ó¢   — || |||dœ}t        di t        «       ¤Ž}|€|j                  | «      }|j                  |j                  d|i|¬«       |S )N)r'   r   Úminré   ÚseedrB   r.   )ró   r0   )r   Ú	min_valueÚ	max_valuerö   r'   r	   r   r   s           r   Úuniform_randomrù     sd   € ð ØØØØñ€Eô Ñ8¬v«xÑ8€FØ
€{Ø×7Ñ7¸Ó>ˆØ
×Ñ˜&×+Ñ+°e¸S°\ÈÐÔOØ€Jr   r]   )NF)gñhãˆµøä>gÍÌÌÌÌÌì?FN)NN)r   N)NFN)4rL   rN   r±   Úpaddle.base.layer_helperr   Úprimregr   r   r%   r+   r2   r6   r:   rC   rS   rW   rZ   rw   rf   ri   r8   rO   rP   rh   rŠ   r�   r‘   r”   r—   rj   rg   r¡   r­   r¶   rK   r¼   rÁ   rÅ   rÊ   rÍ   rÐ   r×   rÚ   rÞ   rá   rä   ry   ré   rì   rï   rò   rù   r^   r   r   Ú<module>rü      sI  ðó Û ã Ý 0å  òò	òó(óóò

óò'ò'ð 	ØØØóW;òt5ñ ˆW�c˜3 Ó$ò;ó %ð;ñ ˆW�c˜3 Ó$ò;ó %ð;ñ ˆW�c˜3 Ó$ò;ó %ð;ñ ˆW�c˜3 Ó$ò;ó %ð;ñ ˆX�s˜CÓ ò;ó !ð;ñ ˆX�s˜CÓ ò;ó !ð;ñ ˆW�c˜3Óò:ó  ð:ñ ˆW�c˜3Óò:ó  ð:ñ ˆW�c˜3Óò:ó  ð:ñ ˆW�c˜3Óò:ó  ð:ñ ˆ[˜#˜sÓ#òDó $ðDñ ˆ]˜C Ó%òFó &ðFñ ˆ]˜C Ó%òFó &ðFñ ˆY˜˜TÓ"òó #ðñ6 ˆZ˜˜sÓ#òó $ðñ  ˆ^˜S #Ó&òó 'ðñ& ˆZ˜˜c 3Ó'ò>ó (ð>ñ Ð˜s CÓ(òó )ðñ@ Ð˜s C¨Ó-òó .ðñ0 ˆZ˜˜m¨SÓ1òó 2ðñ ˆ_˜c 3¨°sÓ;òó <ðñ4 ˆW�c˜3Óò:ó  ð:ñ ˆZ˜ c¨3°Ó4òó 5ðñ4 ˆV�S˜#˜sÓ#ò:ó $ð:ñ ˆV�S˜#˜sÓ#ò:ó $ð:ñ ˆV�S˜#˜sÓ#ò:ó $ð:ñ ˆV�S˜#˜sÓ#ò:ó $ð:ñ ˆW�c˜3 Ó$ò;ó %ð;ñ ˆW�c˜3 Ó$ò;ó %ð;ñ ˆW�c˜3Óò:ó  ð:ñ ˆX�s˜CÓ ò
ó !ð
ñ ˆY˜˜SÓ!ò<ó "ð<ñ Ð Ó'òó (ñr   