
    Piz                     4   d dl Z d dlmZmZmZ  e j        d           	 	 	 	 	 	 	 	 dde j        ded	ed
ee j        ef         dee j        ef         dee j                 dee j                 de	dedee j
        edf         defd            Z e j        d           	 dde j        dede j        dee j                 dee j
        edf         defd            Z e j        d           	 	 dde j        dede	dedee j
        edf         defd            ZdS )    N)UnionOptionalAnyc                 $     	 	 	 	 	 	 	 	 d fd	S )Nb... [c]Tr   c
                       |           ||t          |t                    s| |          n|t          |t                    s| |          n|| |          n|| |          n|||f	i |
S N)
isinstancebool)xstatsparamsmeanvarscalebiasepsilonfastvarbackendkwargscts              ^/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/einx/nn/nn.py<lambda>z<lambda>.<locals>.<lambda>   s     a	!!$--L$2B$ d++H#S%%5#$        r   TTNNr   TN r   r   s   ``r   r   r      s<    	
	      r   )tracer   Tr   r   r   r   r   r   r   r   r   r   r   c
                    ||t          d          t          j        j        |t          j                            |           fi |
\  }}t          j        j                            |          }t          j        j                            |          }t          |t                    s*|(t          j                            ||j        |	d          }t          |t                    s*|(t          j                            ||j        |	d          }t          |t                    r|rt          j        || fd|	i|
}nd }t          |t                    r|r|)t          j        ||	                    |           fd|	i|
}nq|rWt          j        ||	                    |           fd|	i|
}||	                    |          z
  }|	                    |d          }nt          j        || fd|	i|
}nd }|t          j        ||g| |g||	          \  } }|7|	                    ||z             }t          j        ||g| |g||	          \  } }|t          j        || |fd|	i|
} |t          j        || |fd|	i|
} | ||fS )Nzmean and var cannot be Noneadd)shaper   initmultiplyr   r   r   )
ValueErroreinxreduceparsetracer	get_shapeexprstage3demarkr
   r   call_factoryr"   r   squaremaximumr   subtract_stage3rsqrtmultiply_stage3r$   r!   )r   r   r   r   r   r   r   r   r   r   r   expr_in
expr_statsmean_of_squares_inv_stds                   r   normr:      s   J |s{6777++E4;3H3H3K3KVVvVVGZi%%g..G!((44J dD!! cd&6{''J4Dg\a'bbc4   
S_k&&z'z ' 
 

 $  	9UAAAwA&AADDD#t  	|iw~~a'8'8TT'TVTT H&*iw~~a7H7H&d&dRY&d]c&d&dO)GNN4,@,@@C!//#q11CC(5!GGWGGGCCC #Wj$9At9gW^___1
--g..#Wj$9Aw<Zabbb1 M&!UFFGFvFFHVQ@@g@@@dC<r   c                      d fd	S )Nc                 Z      |           | |          | |          nd fi |S r	   r   )r   r,   weightr   r   r   r   s        r   r   z<lambda>.<locals>.<lambda>_   sN    AA	!dAAfII$*:qqwwwE EHNE E r   r	   r   r   s   ``r   r   r   _   $           r   r,   r=   c                    t          j        j        |t           j                            |           t           j                            |          fi |\  \  }}}t          j        || |fd|i|} |d |                                D             }	g }
|                                D ]V}t          |t           j        j        j	                  r0|j
        |	v r'|
                    |                                           Wt           j        j                            |
          }
t          j        ||
g| |g||          \  } }| S )Nr   c                 d    h | ]-}t          |t          j        j        j                  &|j        .S r   )r
   r'   r,   r-   Axisname).0as     r   	<setcomp>zlinear.<locals>.<setcomp>t   s1    dddz!TYM]Mb?c?cdQVdddr   r%   )r'   dotr)   r*   r+   allr
   r,   r-   rA   rB   append__deepcopy__List
add_stage3)r   r,   r=   r   r   r   	_expr_in1expr_in2expr_afterdotweight_axes_names	expr_biasrD   r8   s                r   linearrQ   ^   sJ    ,08>dk##A&&(=(=f(E(E, ,IO, ,(Y=
 	q&<<'<V<<AddX\\^^ddd	""$$ 	3 	3A!TY-233 3BS8S8S  !1!1222I$)))44	I&D	='
 
 
1 Hr   c                      d fd	S )Nc                 H      |           ||| |          nd fi |S r	   r   )r   r,   	drop_raterngr   r   r   s        r   r   z<lambda>.<locals>.<lambda>   sE    aa	!dIqqvvvdG GFLG G r   r	   r   r   s   ``r   r   r      r>   r   rT   rU   c                    d|z
  }t          j        j        |t           j                            |           d fi |\  \  }}}	t           j                            |           5  |j                            |||j                  }
t          j	        ||t           j
        j                            g           g|
| dg|	|          \  } }d d d            n# 1 swxY w Y   | d|z  z  S )N   )rU   pr"   r   r%   )r'   elementwiser)   r*   r+   	depend_onrandom	bernoullir"   where_stage3r,   r-   rJ   )r   r,   rT   rU   r   r   	keep_rater5   	expr_maskexpr_out	drop_maskr8   s               r   dropoutrb      s4    II%)%5%;dk##A&&& &06& &"Wi( 
		q	!	! 
 
N,,	,YY	 !1!6!6r!:!:;1	
 
 
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Is   !A&CCCr   r	   )NN)r'   typingr   r   r   jitTensorstrr   floatBackendr:   rQ   rb   r   r   r   <module>ri      sf    ' ' ' ' ' ' ' ' ' ' 
   6 %)$(#'"&.2> >{>> > T!
"	>
 
t{D 	!> DK > 4;
> > > 4<d*+> > > >1 0>B 
    /3 {
 K 4;
	
 4<d*+    
> 
    .2 {
  
	
 4<d*+    
  r   