
    i                     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 )zA 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       e/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/layers/sigmoid.pySigmoidr      sG     ~~T66*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    YY''Au'=sBFFFN+sEIINN2qN>?yy~~b!$$r   )	r   r   	get_paramr   r(   affiner   InTOutT)r   r    r!   r   r.   r   r-   s   ``   @@r   r   r   &   s}    Xus+,AXus+,A		Aq!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dIaL)}t,4dIaL)	OOC		EMM$,?tAT+UVW	OOC		EMM$,?+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 dHn@U & DDD dD }	D
 ~D 
Dr   