
    i              
           d dl mZmZmZmZmZmZ ddlmZ ddl	m
Z
 ddlmZmZ  ede      Z ede      Z ej                   d	      d
e
eef   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
eef   dee   dee   ddfdZy)    )CallableListOptionalTupleTypeVarcast   )registry)Model)Array2dArray3dInT)boundOutTzwith_reshape.v1layerreturnc           	      V    t        d| j                   dt        t        | gddd      S )z2Reshape data on the way into and out from a layer.zwith_reshape()N)nOnI)initlayersdims)r   nameforwardr   )r   s    j/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/with_reshape.pywith_reshaper      s4     


|1%w%     modelXis_trainc                    	
  j                   d   }|j                  
t        
d d       |j                  d      gz   }|j                  d   |j                  d    j                  j                  |d|j                  d   f      } |||      \  }	  j                  j                  |g| }dt        dt        f	
 fd	}t        t        |      |fS )
Nr   r      r	   )r!   dYr   c                     j                   j                  | z  d      }  j                   j                  |g       S )Nr#   )opsreshape2reshape3)r%   reshapedY2d_backpropinitial_shaper   nBnTs     r   backpropzforward.<locals>.backprop!   sA    99%%b"r'26.EII..xH-HIIr   )	r   shapelistget_dimr'   reshaper)   r   r   )r   r    r!   r   final_shapeX2dY2dYr/   r+   r,   r-   r.   s   `        @@@@r   r   r      s    LLOEGGM}Sb)*emmD.A-BBK	
B	
B
))

AAGGAJ/
0CcH5C		3--AJS JS J J Q<!!r   Nr7   c           	      .   | j                   d   }|||j                          d }d }|9t        t        | j                  j                  |d|j                  d   f            }|9t        t        | j                  j                  |d|j                  d   f            }|j                  ||       |j                  d      r!| j                  d|j                  d             |j                  d      r"| j                  d|j                  d             y y )Nr   r#   )r    r7   r   r   )
r   
initializer   r   r'   r3   r0   has_dimset_dimr2   )r   r    r7   r   r5   r6   s         r   r   r   (   s     LLOEyQY!C!C}7EII--a"aggbk1BCD}7EII--a"aggbk1BCD	sc"}}TdEMM$/0}}TdEMM$/0 r   )NN)typingr   r   r   r   r   r   configr
   r   r   typesr   r   r   r   r   r   boolr   r    r   r   <module>rA      s    A A   $e7#vW% "#dDj) eCHo  $"5c? "s "d "uS(]?S "$ QU1c?1'01<DW<M1	1r   