Ë
    ›¾jÃ
  ã            	       ó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      ú`/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/thinc/layers/resizable.pyÚ	resizabler      s\   € ô Ø
�U—Z‘Z�L Ð"ÜÜØˆwØ˜|Ð,Ø:?¿/¹/ÖJ°$ˆd�E×'Ñ'¨Ó-Ñ-Ò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?   ø€ Ø�L‰L˜‰O€EÙ˜ HÔ-�K€A€xð”Tð œcõ ð ˆhˆ;Ðr%   Nr&   c                 óF   — | j                   d   }|j                  ||«       y )Nr   )r   Ú
initialize)r   r   r&   r   s       r   r   r   "   s!   € ð �L‰L˜‰O€EØ	×Ñ�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Ñ+¨I°vÓ>€IØ€E‡L�L��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ÓÐ"Ø�‰�d˜FÔ#ØˆØ	�5—=‘= Ó&Ò	&ØˆØ	�‰�tÓ	Ð	$Ø�‰�d˜F¨$ˆÔ/Øˆà8=¿¹ÖH°ˆD�%×%Ñ% dÓ+Ñ+ÐH€DÐHØ€Dˆ�JÜ+0Ø�
‰
Ø�‰ØØ',×'8Ñ'8Ö9˜t��d‘
Ò9Ø�Z‰ZØ�k‰kØØ�I‰Iô	,€Ið ×ÑÔØ×!Ñ!ò EˆØ�?‰?˜4Õ Ù+‘Q°×1BÑ1BÀ4ÈÓ1KˆFÜ˜d E¨9¸VÖ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Ø�o‰o˜dÓ#€Gà$€Fˆ>ŒS�‹\Ðà#€FŒ3ˆw‹<ˆ>ÐØ×Ñ˜˜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  ðß .Ñ .å Ý Ý áˆeƒn€Ùˆvƒ€ð €‡��Ó ð	 8ð 	°°c¸4°iÑ0@ò 	ó !ð	ð�5˜˜d˜Ñ#ð ¨ð °tó ð KOñØ��d�ÑðØ (¨¡ðØ9AÀ$¹ðà	óð˜˜c 4˜iÑ(ó ð @Dò#Ø�˜8Ð#Ñ$ð#à
ˆ8�XÐÑó#ôL&r%   