Ë
    ›¾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Mish.v1NF)Úinit_WÚinit_bÚdropoutÚ	normalizeÚnOÚnIr   r   r   r   Úreturnc          	      óB  — |€t         }|€t        }t        dt        t	        t
        ||«      | |dœdddœ¬«      }|r1t        |t        t        t        t        f   t        | ¬«      «      «      }|�0t        |t        t        t        t        f   t        |«      «      «      }|S )zODense layer with mish activation.
    https://arxiv.org/pdf/1908.08681.pdf
    NÚmish)r   r   )ÚWÚb)ÚinitÚdimsÚparams)r   )r	   r
   r   Úforwardr   r   r   r   ÚInTÚOutTr   r   )r   r   r   r   r   r   Úmodels          ú[/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/thinc/layers/mish.pyÚMishr'      s–   € ð €~Ü$ˆØ€~ÜˆÜ#ØÜÜ”T˜6 6Ó*Ø˜bÑ!Ø Ñ%ô€Eñ Ü�eœT¤%¬¬T¨	Ñ"2´IÀÔ4DÓEÓFˆØÐÜ�eœT¤%¬¬T¨	Ñ"2´G¸GÓ4DÓEÓFˆØ€Ló    r%   ÚXÚis_trainc                 ó4  ‡ ‡‡‡— t        t        ‰ j                  d«      «      Št        t        ‰ j                  d«      «      }‰ j                  j                  ‰‰d¬«      Š‰|z  Š‰ j                  j                  ‰«      }dt        dt        fˆˆˆˆ fd„}||fS )Nr   r   T)Útrans2ÚdYr   c                 ó  •— ‰j                   j                  | ‰«      }‰j                  d‰j                   j                  |‰d¬«      «       ‰j                  d|j	                  d¬«      «       ‰j                   j                  |‰«      }|S )Nr   T)Útrans1r   r   )Úaxis)ÚopsÚbackprop_mishÚinc_gradÚgemmÚsum)r-   ÚdY_pre_mishÚdXr   r)   Ú
Y_pre_mishr%   s      €€€€r&   Úbackpropzforward.<locals>.backprop6   sl   ø€ Ø—i‘i×-Ñ-¨b°*Ó=ˆØ�‰�s˜EŸI™IŸN™N¨;¸À$˜NÓGÔHØ�‰�s˜KŸO™O°˜OÓ3Ô4Ø�Y‰Y�^‰^˜K¨Ó+ˆØˆ	r(   )	r   r   Ú	get_paramr   r1   r4   r   r$   r#   )r%   r)   r*   r   ÚYr9   r   r8   s   ``    @@r&   r"   r"   /   s„   û€ ÜŒX�u—‘ sÓ+Ó,€AÜŒX�u—‘ sÓ+Ó,€AØ—‘—‘  1¨T�Ó2€JØ�!�O€JØ�	‰	�‰�zÓ"€Að”Tð œc÷ ð ð ˆhˆ;Ðr(   r;   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_paramr1   Úget_dim)r   r   r%   r)   r;   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   r#   r$   ÚlayersÚintÚfloatÚboolr'   r"   r   © r(   r&   ú<module>rK      sV  ðß 2Ó 2å ß 9Ý ß &ß %Ý Ý Ý  à€Ø€ð €‡��ÓàØðð "&Ø!%Ø#ØòØ�‰ðà�‰ðð �XÑð	ð
 �XÑðð �e‰_ðð ðð ˆ3�ˆ9Ñòó ðð<�5˜˜d˜Ñ#ð ¨ð °tð ÀÀdÈHÀnÑ@Uó ð* ØñDØðDàðDð ��d�ÑðDð ��}ð	Dð
 ��~ðDð 
ôDr(   