
    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 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j0                  d      	 	 	 dddddddee   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)Floats2d)	get_widthpartial   )chain)Dropout)	LayerNormz	Maxout.v1NF)init_Winit_bdropout	normalizenOnInPr   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maxout)r   r   r   )Wb)initdimsparams)r   )r	   r
   r   forwardr   r   r   r   r   InTOutTr   )r   r   r   r   r   r   r   models           d/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/maxout.pyMaxoutr'      s     ~$~#T66*b+%E eY"-.eT%T	"2GG4DEFL    r%   Xis_trainc                 D   	
  j                  d      
 j                  d       j                  d      	 j                  d      } j                  d       j                  j                  
z  	       j                  j	                  d      }| j                  j                  |
z        z  } j                  j                  ||j                  d   
      } j                  j                  |      \  }d	t        d
t        f 	
fd}||fS )Nr   r   r   r   r   T)trans2r   d_bestr   c                    j                   j                  | 
	      }j                  d|j                  d             j                   j	                  ||j
                  d   	z        }j                   j                  j                   j                  |d      	      }j                  d|       j                   j                  |j                   j	                  	z              S )Nr   r   )axisT)trans1r   )opsbackprop_maxoutinc_gradsum	reshape2fshape	reshape3fgemm)r-   dZdYdWr   r)   r%   r   r   r   whichs       r&   backpropzforward.<locals>.backprop9   s    YY&&vub9sBFFFN+YY  RXXa["r':YY  Ad!CRRPsByy~~b%))"5"5ab""EFFr(   )get_dim	get_paramr1   r5   r8   	reshape1fr7   r6   r   r$   r#   )r%   r)   r*   r   YZbestr=   r   r   r   r   r<   s   ``      @@@@@r&   r"   r"   -   s    	t	B	t	B	t	BAA		ArBw+A		q!D)A		QR	((A		Aqwwqz2r2A))""1%KD%G G# G G >r(   rA   c           
         ||j                  dt        |             ||j                  dt        |             |j                  d      |j                  d      |j                  d      f}|j                  d | |j                  |             |j                  d ||j                  |j                  d      |j                  d      f             y )Nr   r   r   r   r   )set_dimr   r>   	set_paramr1   )r   r   r%   r)   rA   W_shapes         r&   r   r   E   s     	}dIaL)}dIaL)}}T"EMM$$7t9LMG	OOC		734	OOC		EMM$,?tAT+UVWr(   )NN   )NN)typingr   r   r   r   configr   initializersr	   r
   r%   r   typesr   utilr   r   r   r   r   	layernormr   r#   r$   layersintfloatboolr'   r"   r    r(   r&   <module>rT      sg   2 2  9   %     
 "&!%# 	
 X X e_  39 85d#  t dHn@U 8 XXX dX }	X
 ~X 
Xr(   