
    i|                     0    d dl mZmZ ddZd Zd ZddZy)	    )Modelnormal_initc           
      N    t        dt        t        | |||dd d d dd|i      }|S )Nprecomputable_affine)nOnInFnP)Wbpaddropout_rate)initdimsparamsattrs)r   forwardr   )r   r   r	   r
   dropoutmodels         o/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/ml/_precomputable_affine.pyPrecomputableAffiner      s:    b"5T2w'E L    c                 f   	  j                  d       j                  d       j                  d      	 j                  d       j                  d       j                  j                  j                  d   dz   z  	z  d	      } j                  j                  j                  z  	z  f      d
|dd         |j                  |j                  d   	f      } j                  j                  j                   j                  d      d      |d<    	fd}||fS )Nr	   r   r
   r   r   r      F)zerosT)trans2outr   c                    | \  }}|j                   dk(  sJ |j                  d   k(  sJ |j                         |j                  d   k(  sJ |j                         	j                  dt        	||             |   }|j	                  |j                  d   
z  f      }	j                  d|j                  d             |j	                  |j                  d   z  f      }j                  d      }|j	                  z  
z  f      }	j                  j                  |j	                  |j                  d   z  f      |      }	j                  j                  ||d	
      }|j	                  
f      }|j                  d      }	j                  d|       |j	                  |j                  d   
f      S )N   r      r   r   r   )axis)r   r    r   r   Ttrans1)r    r   r   r   r   )	ndimshapeinc_grad&_backprop_precomputable_affine_paddingreshapesum	transposeopsgemm)dY_idsdYidsXfWopfidXfdWopfir   Xr   r	   r   r   r
   s          r   backwardzforward.<locals>.backward    s    Cww!||xx{b *"((* xx{b *"((* uDUBPSTUsVZZ!b2g./sBFFFN+ZZ!b2g./L)rBwR01iinnRZZ!b2g(>?GBt4RR 01!!,/sF#{{CIIaL"b122r   )	get_dim	get_paramr+   alloc2fr%   r,   r(   xpsqueeze)
r   r4   is_trainYfr5   r   r	   r   r   r
   s
   ``   @@@@@r   r   r      s   	t	B	t	B	t	B	t	BA			1771:>27R<u		EB	IINN1aiib2r 23DbfNM	RXXa["b"-	.B
 IILL  !7;BqE#3 #3J x<r   c                 R   |j                   d   }| j                  d      }| j                  d      }| j                  d      }| j                  j                  |dk  d      }| j                  j	                  ||j                  |||z        d      }|j                  d	|||f      S )
Nr   r	   r
   r   fdtypeTr"   r   )r%   r6   r+   asarrayr,   r(   )	r   r.   r/   nBr	   r
   r   maskd_pads	            r   r'   r'   H   s    	!B	t	B	t	B	t	B 99S1WC0DIINN4BR!8NFE==!RR))r   Nc           
           j                  d      r  j                  d      j                         ry j                  d       j                  d       j                  d       j                  d      } j                  j                  |      } j                  j                         j                  j                  d      } j                  }t        ||j                  t        |j                  j                  dz  |z              	      }t        ||j                  d	      } j                  d|        j                  d
        j                  d|       |j                  dfd      }||j                  j                  j                  dd|j                        z  }|j!                  |d      }|j                  d|fd      }||j                  j                  j#                  dd|j$                        j'                  |j                        z  } fd}	d}
d}d} j                  d      j)                         } j                  d
      j)                         t+        |      D ]  } |	||      } j                  j                  j-                  |      } j                  j                  j/                  |      }t1        |dz
        |
k\  r;| j                  j                  j                  |      z  } j                  d|       t1        |      |k\  r|z   j                  d
        y y)a  This is like the 'layer sequential unit variance', but instead
    of taking the actual inputs, we randomly generate whitened data.

    Why's this all so complicated? We have a huge number of inputs,
    and the maxout unit makes guessing the dynamics tricky. Instead
    we set the maxout weights to values that empirically result in
    whitened outputs given whitened inputs.
    r   Nr	   r   r
   r   r   g      ?)meanr   r   i  r>   r?   r   i  ig        )locscalesizec                    j                  |d d       }j                  j                  | j                  d   z  fd      }|j	                  |j                  d   z  z  f      }j                  j                  || j                         |       |j	                  |j                  d   f      }|z  }j                  j                  |      }dk\  rj                  j                  |      d   S ||dk\  z  S )Nr   r>   r?   r    )	predictr+   allocr%   r(   scatter_addflattenrA   maxout)	r/   tokvecshiddensvectorsr   r   r	   r   r
   s	       r   rM   zinit.<locals>.predict   s    ---))//399Q<b"9/E//7==#3b#8"r'"BC		gs{{}g>//7==#3R"<=1))##G,799##G,Q//gl++r   g{Gz?
   )	has_paramr7   anyr6   r+   alloc4fr8   r   r%   floatr9   sqrt	set_paramrN   randomuniformrA   normalrJ   r(   copyrangevarrF   abs)r   r4   Yr   r   r   r+   r/   rR   rM   tol_vartol_meant_maxt_iacts1ra   rF   r   r	   r   r
   s   `                @@@@r   r   r   _   s    s 4 8 8 :	t	B	t	B	t	B	t	B		"b"b)A		"b!A
))

Ar2r
*C
))CCuSVV[[rB-G'HIA
c3993
/C	OOC	OOC	OOE3
))T2Jc)
*C366==  D#))44C
++c+
%Ciir
#i.Gsvv}}##3W\\#JRR G, , GHE!!#A!!#AU| W%iillu%yy||  'sSy>W$""3''AOOC#Y("IAOOC#r   )g?)NN)	thinc.apir   r   r   r   r'   r    r   r   <module>rk      s    (	5p*.Br   