
    i
              	       8   d dl mZmZmZ ddlmZ ddlmZ ddlm	Z	  ed      Z
 ed      Z ej                  d      d	ed
ee
ef   fd       Zdee
ef   de
defdZ	 ddee
ef   dee
   dee   d
dfdZdee
ef   fdZdddee	e	f   d
ee	e	f   fdZddZy)    )CallableOptionalTypeVar   )registry)Model)Floats2dInTOutTzresizable.v1resize_layerreturnc                     t        d| j                   dt        t        | gd|i| j                  D ci c]  }|| j                  |       c}      S c c}w )z:Container that holds one layer that can change dimensions.z
resizable()r   )initlayersattrsdims)r   nameforwardr   	dim_namesmaybe_get_dim)layerr   r   s      g/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/resizable.py	resizabler      s\     
UZZL"w|,:?//J$dE''--J  Ks   AmodelXis_trainc                 h    | j                   d   } |||      \  }dt        dt        ffd}||fS )Nr   )r   dYr   c                      |       S N )r   callbacks    r   backpropzforward.<locals>.backprop   s    |    )r   r   r
   )r   r   r   r   Yr$   r#   s         @r   r   r      s?    LLOEH-KAxT c  h;r%   Nr&   c                 F    | j                   d   }|j                  ||       y )Nr   )r   
initialize)r   r   r&   r   s       r   r   r   "   s!     LLOE	Qr%   c                 n    | j                   d   } | j                  d   ||      }|| j                   d<   | S )Nr   r   )r   r   )r   new_nO	old_layer	new_layers       r   resize_modelr-   )   s8    QI+N+Iv>IELLOLr%   )fill_defaultsr   c          
         | j                   rJ | j                  rJ | j                  rJ | j                  d      | j	                  d|       | S || j                  d      k(  r| S | j                  d      | j	                  d|d       | S | j                  D ci c]  }|| j                  |       }}||d<   t        | j                  | j                  || j                  D ci c]  }|d c}| j                  | j                  i | j                        }|j                          | j                  D ]9  }| j!                  |      s|sdn|j#                  |d      }t%        || ||       ; |S c c}w c c}w )	zVCreate a resized copy of a layer that has parameters W and b and dimensions nO and nI.nONnIT)force)r   paramsr   r   refsopsr   )filler)r   	ref_namesshimshas_dimset_dimget_dimr   r   r   r   _funcparam_namesr   r   r5   r(   	has_paramget_resize_parameter)r   r*   r.   r   r   r,   r6   s          r   resize_linear_weightedrA   0   sm    ||{{? }}T"dF#	5==&	&	t		$dF$/8=HD%%%d++HDHDJ+0

','8'89td
9ZZkkII	,I !! E??4 +Q1B1B41KFdE9VDE # I :s   E3%
E8c                     |j                  |       }|j                  |       }||d t        |       ||t        |      d  |j                  | |       y r!   )	get_paramlen	set_param)r   r   r,   r6   largersmallers         r   r@   r@   V   sP      &Food#G$F>S\#F3w<>f%r%   )NN)r   )typingr   r   r   configr   r   r   typesr	   r
   r   r   r   boolr   r   r-   rA   r@   r"   r%   r   <module>rL      s   . .   env  	8 	c4i0@ 	 !	5d#  t  KOd (9A$	c4i(  @D#8#$#
8X#L&r%   