
    #Zj                        d dl mZmZ d dlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ded	e
d
e	fdZ ej        d          d
ee
ge	f         fd            Zded	e
d
e	fdZ ej        d          d
ee
ge	f         fd            Zded	e
d
e	fdZ ej        d          d
ee
ge	f         fd            Zded	e
d
e	fdZ ej        d          d
ee
ge	f         fd            Zded	e
d
e	fdZ ej        d          d
ee
ge	f         fd            Zded	e
d
e	fdZ ej        d          d
ee
ge	f         fd            Zded	e
d
e	fdZ ej        d          d
ee	ge	f         fd            Zd d!d"ded	e
d#ed$ed
e	f
d%Z ej        d&          d d!d"d#ed$ed
ee	ge	f         fd'            Zd d(ded	e
d)ed
e	fd*Z ej        d+          d d(d)ed
ee	ge	f         fd,            Z g d-Z!dS ).    )CallablecastN   )Ops)registry)FloatsXdShape)partialopsshapereturnc           
          t          j        d|d         z            }|                     t          t          t           j                            d||                              S )Ng      ?r   r   numpysqrt	asarray_fr   r   randomnormalr   r   scales      ^/Users/jameslopez/projects/MentorCore/.venv/lib/python3.11/site-packages/thinc/initializers.pylecun_normal_initr      I    JsU1X~&&E==h(;(;Aue(L(LMMNNN    zlecun_normal_init.v1c                  *    t          t                    S N)r
   r    r   r   configure_lecun_normal_initr      s    $%%%r   c           
          t          j        d|d         z            }|                     t          t          t           j                            d||                              S Ng       @r   r   r   r   s      r   he_normal_initr!      r   r   zhe_normal_init.v1c                  *    t          t                    S r   )r
   r!   r   r   r   configure_he_normal_initr#   !   s    >"""r   c           
          t          j        d|d         |d         z   z            }|                     t          t          t           j                            d||                              S r    r   r   s      r   glorot_normal_initr%   &   sS    JseAhq1233E==h(;(;Aue(L(LMMNNNr   zglorot_normal_init.v1c                  *    t          t                    S r   )r
   r%   r   r   r   configure_glorot_normal_initr'   +       %&&&r   c           
          t          j        d|d         z            }|                     t          t          t           j                            | ||                              S )N      @r   r   r   r   r   r   r   uniformr   s      r   he_uniform_initr-   0   K    JsU1X~&&E==h(<(<eVUE(R(RSSTTTr   zhe_uniform_init.v1c                  *    t          t                    S r   )r
   r-   r   r   r   configure_he_uniform_initr0   5   s    ?###r   c           
          t          j        d|d         z            }|                     t          t          t           j                            | ||                              S )Ng      @r   r+   r   s      r   lecun_uniform_initr2   :   r.   r   zlecun_uniform_init.v1c                  *    t          t                    S r   )r
   r2   r   r   r   configure_lecun_uniform_initr4   ?   r(   r   c           
          t          j        d|d         |d         z   z            }|                     t          t          t           j                            | ||                              S )Nr*   r   r   r+   r   s      r   glorot_uniform_initr6   D   sU    JseAhq1233E==h(<(<eVUE(R(RSSTTTr   zglorot_uniform_init.v1c                  *    t          t                    S r   )r
   r6   r   r   r   configure_glorot_uniform_initr8   I   s    &'''r   c                 ,    |                      |          S r   )alloc_f)r   r   s     r   	zero_initr;   N   s    ;;ur   zzero_init.v1c                  *    t          t                    S r   )r
   r;   r   r   r   configure_zero_initr=   R   s    9r   gg?lohir?   r@   c                    t           j                            |||          }|                     t	          t
          |                    d                              S )Nfloat32)r   r   r,   r   r   r   astype)r   r   r?   r@   valuess        r   uniform_initrE   W   sE     \!!"b%00F==hi(@(@AABBBr   zuniform_init.v1c                 0    t          t          | |          S )Nr>   )r
   rE   r>   s     r   configure_uniform_initrG   ^   s     <B2....r   meanrI   c                d   t          | j                            | j                            |                              }t	          t
          t          j                            ||          	                    d                    }| 
                    ||          }|                     |          S )N)r   sizerB   )intxpprodasarrayr   r   r   r   r   rC   	reshape_fr   )r   r   rI   rK   initss        r   normal_initrR   e   s    sv{{36>>%001122D5<..T.EELLYWWXXEMM%''E==r   znormal_init.v1c                 .    t          t          |           S )NrH   )r
   rR   rH   s    r   configure_normal_initrT   l   s    ;T****r   )	rR   rE   r6   r;   r2   r-   r%   r!   r   )"typingr   r   r   backendsr   configr   typesr   r	   utilr
   r   initializersr   r!   r#   r%   r'   r-   r0   r2   r4   r6   r8   r;   r=   floatrE   rG   rR   rT   __all__r   r   r   <module>r]      s   ! ! ! ! ! ! ! !              " " " " " " " "      O3 Ou O O O O O
 -..&Xugx.?%@ & & & /.&O OE Oh O O O O
 *++#(E7H+<"= # # # ,+#OC O O( O O O O
 .//'hw/@&A ' ' ' 0/'U UU Ux U U U U
 +,,$8UGX,=#> $ $ $ -,$UC U U( U U U U
 .//'hw/@&A ' ' ' 0/'US U U8 U U U U
 /00(x0A'B ( ( ( 10(3 u      ~&&Xxj(&:;    '&
 ,0SC C C	CC#(C5:CC C C C ())S/ / //"/xj("#/ / / *)/ :;      S      x         '((+, + + +5 +8*h:N1O + + + )(+
 
 
r   