
    i	                        d dl mZmZmZmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ eZeZ ej2                  d      	 	 dddddddee   dee   dee   dee   dee   dedeeef   fd       Zdeeef   dededeeef   fdZ	 	 ddededeeef   dee   dee   ddfdZy)    )CallableOptionalTuplecast   )registry)glorot_uniform_init	zero_init)Model)Floats1dFloats2d)	get_widthpartial   )chain)Dropout)	LayerNormzRelu.v1NF)init_Winit_bdropout	normalizenOnIr   r   r   r   returnc          	         |t         }|t        }t        dt        t	        t
        ||      | |dd d d      }|rt        |t        |             }|0t        |t        t        t        t        f   t        |                  }|S )Nrelu)r   r   )Wb)initdimsparams)r   )r	   r
   r   forwardr   r   r   r   r   r   r   )r   r   r   r   r   r   models          b/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/relu.pyRelur%      s     ~$~#T66*b!%E eY"-.eT%((:";WW=MNOL    r#   Xis_trainc                 (    t        t         j                  d            t        t         j                  d            } j                  j                  |       j                  j                        dt        dt        f fd}|fS )Nr   r   dYr   c                    j                   j                  |       } j                  d| j                  d             j                  dj                   j	                  | d             j                   j	                  |       S )Nr   r   )axisr   T)trans1)opsbackprop_reluinc_gradsumgemm)r*   r   r'   Yr#   s    r$   backpropzforward.<locals>.backprop2   sg    YY$$R+sBFFFN+sEIINN2qN>?yy~~b!$$r&   )	r   r   	get_paramr   r.   affiner   OutTInT)r#   r'   r(   r   r4   r   r3   s   ``   @@r$   r"   r"   ,   s{    Xus+,AXus+,A		Aq!A		qA%T %c % % h;r&   r3   c           
      d   ||j                  dt        |             ||j                  dt        |             |j                  d | |j                  |j	                  d      |j	                  d      f             |j                  d ||j                  |j	                  d      f             y )Nr   r   r   r   )set_dimr   	set_paramr.   get_dim)r   r   r#   r'   r3   s        r$   r   r   ;   s     	}dIaL)}dIaL)	OOC		EMM$,?tAT+UVW	OOC		EMM$,?+ABCr&   )NN) typingr   r   r   r   configr   initializersr	   r
   r#   r   typesr   r   utilr   r   r   r   r   	layernormr   r8   r7   layersintfloatboolr%   r"   r    r&   r$   <module>rH      sV   2 2  9  & %      "&!%# X	
 X e_  39 65d#  t dHn@U & DDD dD }	D
 ~D 
Dr&   