Ë
    ›¾jÅ
  ã                   ó”  — d dl mZ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 ddlmZmZmZmZ ddlmZmZ dd	lmZ dd
lmZ  edeeef   ¬«      ZeZ e	j6                  d«      	 	 dddddœdee   dee   dee   dee   de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eef   dee   dee   ddf
d„Z!y)é    )ÚCallableÚDictÚOptionalÚTupleÚTypeVarÚUnionÚcasté   )Úregistry)Úuniform_init)ÚModel)ÚFloats1dÚFloats2dÚInts1dÚInts2d)Ú	get_widthÚpartialé   )Úints_getitem)ÚchainÚInT)ÚboundzEmbed.v1N)ÚcolumnÚinitializerÚdropoutÚnOÚnVr   r   r   Úreturnc          	      ó  — i }|€t         }|�||d<   t        dt        t        t        |«      || |dœddi¬«      }|�!t        t        t        dd«      |f«      |«      }||j                  d<   t        t        t        t        f   |«      S )	z9Map integers to vectors, using a fixed-size lookup table.NÚdropout_rateÚembed)r   r   ÚE)ÚinitÚattrsÚdimsÚparamsr   r   )r   r   Úforwardr   r#   r   r   Úslicer$   r	   r   ÚOutT)r   r   r   r   r   r$   Úmodels          ú\/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/thinc/layers/embed.pyÚEmbedr,      sš   € ð 13€EØÐÜ"ˆØÐØ 'ˆˆnÑÜØÜÜ”T˜;Ó'ØØ˜bÑ!Ø�Tˆ{ô€Eð Ðô
 ”l¤E¨!¨T£N°FÐ#;Ó<¸eÓDˆØ"€E‡K�K�ÑÜ””cœ4�iÑ  %Ó(Ð(ó    r*   ÚidsÚis_trainc                 óf  ‡ ‡‡‡‡	— t        t        ‰ j                  d«      «      Š	‰	j                  d   }‰j                  d   Š‰ j                  j                  d«      }‰	‰   }d Š|r2t        t        ‰ j                  j                  |f|«      «      Š‰�|‰z  }dt        dt        fˆˆˆ ˆˆ	fd„}||fS )Nr"   r   r   r    Úd_outputr   c                 óð   •— ‰�| ‰z  }  ‰j                   j                  ‰j                  Ž }‰j                   j                  |‰| «       ‰j	                  d|«       ‰j                   j                  ‰«      }|S )Nr"   )ÚopsÚalloc2fÚshapeÚscatter_addÚinc_gradÚalloc1i)r1   Ú	d_vectorsÚdXÚ	drop_maskr.   r*   ÚnNÚvectorss      €€€€€r+   Úbackpropzforward.<locals>.backprop>   sj   ø€ ØÐ Ø˜	Ñ!ˆHØ%�E—I‘I×%Ñ% w§}¡}Ð5ˆ	à�	‰	×Ñ˜i¨¨hÔ7Ø�‰�s˜IÔ&Ø�Y‰Y×Ñ˜rÓ"ˆØˆ	r-   )r	   r   Ú	get_paramr5   r$   Úgetr   r3   Úget_dropout_maskr)   r   )
r*   r.   r/   r   r   Úoutputr>   r;   r<   r=   s
   ``     @@@r+   r'   r'   0   s¬   ü€ ô ”8˜UŸ_™_¨SÓ1Ó2€GØ	�‰�qÑ	€BØ	�‰�1‰€BØ$Ÿ{™{Ÿ™¨~Ó>€GØ�S‰\€FØ€IÙÜœ 5§9¡9×#=Ñ#=¸r¸eÀWÓ#MÓNˆ	ØÐ Ø�iÑˆFðœ4ð ¤F÷ ñ ð �8ÐÐr-   ÚXÚYc                 óÈ   — |�|j                  dt        |«      «       |j                  d«      |j                  d«      f}|j                  d | |j                  |«      «       y )Nr   r   r"   )Úset_dimr   Úget_dimÚ	set_paramr3   )r   r*   rC   rD   r5   s        r+   r#   r#   K   sP   € ð 	€}Ø�‰�dœI a›LÔ)Ø�]‰]˜4Ó  %§-¡-°Ó"5Ð6€EØ	‡O�O�C™ U§Y¡Y°Ó6Õ7r-   )NN)"Útypingr   r   r   r   r   r   r	   Úconfigr   Úinitializersr   r*   r   Útypesr   r   r   r   Úutilr   r   Úarray_getitemr   r   r   r)   ÚlayersÚintÚfloatr,   Úboolr'   r#   © r-   r+   ú<module>rT      sP  ðß H× HÑ Hå Ý 'Ý ß 6Ó 6ß %Ý 'Ý áˆe˜5 ¨ Ñ0Ô1€Ø€ð €‡��ÓàØð)ð !Ø&*Ø#ò)Ø�‰ð)à�‰ð)ð �S‰Mð	)ð
 ˜(Ñ#ð)ð �e‰_ð)ð ˆ3�ˆ9Ñò)ó ð)ð@Ø�˜�ÑðØ%+ðØ7;ðà
ˆ4�ˆ>Ñóð< Øñ		8Øð	8à�˜�Ñð	8ð �Ñð	8ð ��~ð		8ð
 
ô	8r-   