Ë
    ›¾j™  ã                   óF  — d dl 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 ddlmZmZ eZeZ ej&                  d«      	 	 dd	d	d
œ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de
eef   dee   dee   dd	fd„Zy	)é    )ÚCallableÚOptionalÚTupleÚcasté   )Úregistry)Ú	zero_init)ÚModel)ÚFloats1dÚFloats2d)Ú	get_widthÚpartialz
Sigmoid.v1N)Úinit_WÚinit_bÚnOÚnIr   r   Úreturnc          	      ót   — |€t         }|€t         }t        dt        t        t        ||«      | |dœdddœ¬«      S )z°A dense layer, followed by a sigmoid (logistic) activation function. This
    is usually used instead of the Softmax layer as an output for multi-label
    classification.
    NÚsigmoid)r   r   )ÚWÚb)ÚinitÚdimsÚparams)r	   r
   Úforwardr   r   )r   r   r   r   s       ú^/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/thinc/layers/sigmoid.pyÚSigmoidr      sG   € ð €~ÜˆØ€~ÜˆÜØÜÜ”T˜6 6Ó*Ø˜bÑ!Ø Ñ%ôð ó    ÚmodelÚ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                  | ‰d¬«      } ‰j                  d| j                  d¬«      «       ‰j                  d‰j                   j	                  | ‰d¬«      «       ‰j                   j	                  | ‰«      S )	NF)Úinplacer   r   )Úaxisr   T)Útrans1)ÚopsÚbackprop_sigmoidÚinc_gradÚsumÚgemm)r#   r   r    ÚYr   s    €€€€r   Úbackpropzforward.<locals>.backprop,   sl   ø€ Ø�Y‰Y×'Ñ'¨¨A°uÐ'Ó=ˆØ�‰�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   ÚInTÚOutT)r   r    r!   r   r.   r   r-   s   ``   @@r   r   r   &   s}   û€ ÜŒX�u—‘ sÓ+Ó,€AÜŒX�u—‘ sÓ+Ó,€AØ�	‰	×Ñ˜˜A˜qÓ!€AØ�	‰	×Ñ˜!Ó€Að%”Sð %œT÷ %ð %ð ˆhˆ;Ðr   r-   c           
      ó¨  — |�,|j                  d«      €|j                  dt        |«      «       |�,|j                  d«      €|j                  dt        |«      «       |j                  d | |j                  |j                  d«      |j                  d«      f«      «       |j                  d ||j                  |j                  d«      f«      «       y )Nr   r   r   r   )Úhas_dimÚset_dimr   Ú	set_paramr(   Úget_dim)r   r   r   r    r-   s        r   r   r   5   s£   € ð 	€}˜Ÿ™ tÓ,Ð4Ø�‰�dœI a›LÔ)Ø€}˜Ÿ™ tÓ,Ð4Ø�‰�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
   Útypesr   r   Úutilr   r   r1   r2   ÚlayersÚintr   Úboolr   r   © r   r   ú<module>rA      s/  ðß 2Ó 2å Ý $Ý ß &ß %à€Ø€ð €‡��ÓàØðð "&Ø!%òØ�‰ðà�‰ðð �XÑð	ð
 �XÑðð ˆ3�ˆ9Ñòó ðð0�5˜˜d˜Ñ#ð ¨ð °tð ÀÀdÈHÀnÑ@Uó ð& ØñDØðDàðDð ��d�ÑðDð ��}ð	Dð
 ��~ðDð 
ôDr   