
    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j.                  d      	 	 d.dd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ded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 ej.                  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 ej.                  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 ej.                  d)      	 	 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deeef   fd-       Z y)/    )CallableOptionalTuplecast   )registry)glorot_uniform_init	zero_init)Model)Floats1dFloats2d)	get_widthpartial   )chain)Dropout)	LayerNormzClippedLinear.v1NF      ?        )init_Winit_bdropout	normalizeslopeoffsetmin_valmax_valnOnIr   r   r   r   r   r   r   r   returnc          	         |t         }|t        }||||	d}
t        dt        t	        t
        ||      | |dd d d|
      }|rt        |t        |             }|0t        |t        t        t        t        f   t        |                  }|S )N)r   r   r   r   clipped_linear)r   r   )Wb)forwardinitdimsparamsattrs)r   )r	   r
   r   r%   r   r&   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   model_attrsmodels               l/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/clipped_linear.pyClippedLinearr-      s     ~$~	K (-T66*b!%(E eY"-.eT%((:";WW=MNOL    r+   Xis_trainc           	         	
  j                   d    j                   d   
 j                   d   	 j                   d   t        t         j                  d            t        t         j                  d            } j
                  j                  |       j
                  j                  
	      }dt        dt        f	 
fd	}||fS )
Nr   r   r   r   r#   r$   dYr    c           	          j                   j                  | d      } j                  d| j                  d             j                  dj                   j	                  | d             j                   j	                  |       S )	NF)inplacer$   r   )axisr#   T)trans1)opsbackprop_clipped_linearinc_gradsumgemm)	r2   r#   r/   Y_preactr   r   r+   r   r   s	    r,   backpropzforward.<locals>.backpropB   s{    YY..%'5 / 
 	sBFFFN+sEIINN2qN>?yy~~b!$$r.   )r)   r   r   	get_paramr   r7   affiner"   )r+   r/   r0   r$   Yr=   r#   r<   r   r   r   r   s   ``    @@@@@@r,   r%   r%   4   s    
 KK E[["Fkk)$Gkk)$GXus+,AXus+,Ayy1a(H		  5&'7KA%X %( % % h;r.   r@   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_paramr7   get_dim)r   r   r+   r/   r@   s        r,   r&   r&   M   s     	}dIaL)}dIaL)	OOC		EMM$,?tAT+UVW	OOC		EMM$,?+ABCr.   zHardSigmoid.v1)r   r   r   r   c          	      F    |t         }|t        }t        | ||||dd      S )Ng?g      ?)r   r   r   r   r   r   r   r	   r
   r-   r   r   r   r   r   r   s         r,   HardSigmoidrH   \   s:     ~$~ r.   zHardTanh.v1c          	      F    |t         }|t        }t        | ||||dd      S )Ng      r   r   r   r   r   r   r   r   rF   rG   s         r,   HardTanhrK   u   s:     ~$~ r.   zReluK.v1g      @)r   r   r   r   krL   c          	      F    |t         }|t        }t        | ||||d|      S )Nr   rJ   rF   )r   r   r   r   r   r   rL   s          r,   ReluKrN      s:     ~$~ r.   )NN)!typingr   r   r   r   configr   initializersr	   r
   r+   r   typesr   r   utilr   r   r   r   r   	layernormr   layersintfloatboolr-   r%   r&   rH   rK   rN    r.   r,   <module>rZ      sl   2 2  9  & %     #$# "&!%#### X	#
 X# e_# # # # # # 8X# %#L8#$  8X	: ! DDD 8#$D 	D
 D 
D !" "&!%# X	
 X e_  8X #0  "&!%# X	
 X e_  8X  0  "&!%# X	
 X e_   8X r.   