Ë
    ›¾j	  ã                   ó€  — 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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j2                  d«      	 	 ddddddœ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)ÚFloats1dÚFloats2d)Ú	get_widthÚpartialé   )Úchain)ÚDropout)Ú	LayerNormzRelu.v1NF)Úinit_WÚinit_bÚdropoutÚ	normalizeÚnOÚnIr   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Úrelu)r   r   )ÚWÚb)ÚinitÚdimsÚparams)r   )r	   r
   r   Úforwardr   r   r   r   r   r   r   )r   r   r   r   r   r   Úmodels          ú[/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/thinc/layers/relu.pyÚRelur%      s‡   € ð €~Ü$ˆØ€~ÜˆÜ#ØÜÜ”T˜6 6Ó*Ø˜bÑ!Ø Ñ%ô€Eñ Ü�eœY¨"Ô-Ó.ˆØÐÜ�eœT¤%¬´(Ð(:Ñ";¼WÀWÓ=MÓNÓOˆØ€Ló    r#   ÚXÚis_trainc                 ó(  ‡ ‡‡‡— t        t        ‰ j                  d«      «      Št        t        ‰ j                  d«      «      }‰ j                  j                  ‰‰|«      Š‰ j                  j                  ‰«      Šdt        dt        fˆˆˆˆ fd„}‰|fS )Nr   r   ÚdYr   c                 ó  •— ‰j                   j                  | ‰«      } ‰j                  d| j                  d¬«      «       ‰j                  d‰j                   j	                  | ‰d¬«      «       ‰j                   j	                  | ‰«      S )Nr   r   )Úaxisr   T)Útrans1)ÚopsÚbackprop_reluÚinc_gradÚsumÚgemm)r*   r   r'   ÚYr#   s    €€€€r$   Úbackpropzforward.<locals>.backprop2   sg   ø€ Ø�Y‰Y×$Ñ$ R¨Ó+ˆØ�‰�s˜BŸF™F¨˜F›NÔ+Ø�‰�s˜EŸI™IŸN™N¨2¨q¸˜NÓ>Ô?Ø�y‰y�~‰~˜b !Ó$Ð$r&   )	r   r   Ú	get_paramr   r.   Úaffiner   ÚOutTÚInT)r#   r'   r(   r   r4   r   r3   s   ``   @@r$   r"   r"   ,   s{   û€ ÜŒX�u—‘ sÓ+Ó,€AÜŒX�u—‘ sÓ+Ó,€AØ�	‰	×Ñ˜˜A˜qÓ!€AØ�	‰	�‰�qÓ€Að%”Tð %œc÷ %ð %ð ˆhˆ;Ðr&   r3   c           
      ód  — |�|j                  dt        |«      «       |�|j                  dt        |«      «       |j                  d | |j                  |j	                  d«      |j	                  d«      f«      «       |j                  d ||j                  |j	                  d«      f«      «       y )Nr   r   r   r   )Úset_dimr   Ú	set_paramr.   Úget_dim)r   r   r#   r'   r3   s        r$   r   r   ;   s‡   € ð 	€}Ø�‰�dœI a›LÔ)Ø€}Ø�‰�dœI a›LÔ)Ø	‡O�O�C™ §	¡	¨E¯M©M¸$Ó,?ÀÇÁÈtÓATÐ+UÓVÔWØ	‡O�O�C™ §	¡	¨E¯M©M¸$Ó,?Ð+AÓBÕCr&   )NN) Útypingr   r   r   r   Úconfigr   Úinitializersr	   r
   r#   r   Útypesr   r   Úutilr   r   r   r   r   Ú	layernormr   r8   r7   ÚlayersÚintÚfloatÚboolr%   r"   r   © r&   r$   ú<module>rH      sV  ðß 2Ó 2å ß 9Ý ß &ß %Ý Ý Ý  à€Ø€ð €‡��ÓàØðð "&Ø!%Ø#ØòØ�‰ðà�‰ðð �XÑð	ð
 �XÑðð �e‰_ðð ðð ˆ3�ˆ9Ñòó ðð6�5˜˜d˜Ñ#ð ¨ð °tð ÀÀdÈHÀnÑ@Uó ð& ØñDØðDàðDð ��d�ÑðDð ��}ð	Dð
 ��~ðDð 
ôDr&   