
    i                     P   d dl Z d dlZd dlmZmZ d Zd Z ej                  d dddfd dddfd	 d
ddfd dddfd dddfd dddfgd      d        Z ej                  d d d d gd      d        Z	ej                  j                  dg d      d         Zd! Zd" Zd# Zd$ Zy)%    N)	Optimizerregistryc               #      K   	 d w)Nv/? r       l/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/tests/test_optimizers.py_test_schedule_validr
      s     
 s   	c               #   $   K   g E d {    y 7 wNr   r   r   r	   _test_schedule_invalidr      s     MMs   c                       y)Nrh|?r   r   r   r	   <lambda>r          r   r   c                      t               S r   )r
   r   r   r	   r   r      s
    %' r   r   c                      d dD        S )Nc              3       K   | ]  }|  y wr   r   .0is     r	   	<genexpr>z<lambda>.<locals>.<genexpr>   s     A!A   )皙?皙?皙?g      ?g333333?ffffff?皙?r   r   r   r	   r   r      s    A@A r   r   r   r   c                      d dD        S )Nc              3       K   | ]  }|  y wr   r   r   s     r	   r   z<lambda>.<locals>.<genexpr>   s     ,!,r   )Zd;O?Zd;O?r   r   r   r	   r   r      s    ,^, r   r!   r"   c                  
    g dS )N)?r   r   r   r   r   r	   r   r      s     r   r$   r   r   c                  
    ddgS )N        r   r   r   r   r	   r   r      s
    #u r   r&   function)paramsscopec                 :    | j                   \  }}}} |       |||fS r   param)requestr_funcr1r2r3s        r	   schedule_validr2      s'     !FBB8RRr   c                       y)Nhellor   r   r   r	   r   r   #   r   r   c                      t               S r   )r   r   r   r	   r   r   $   s
    ') r   c                      d dD        S )Nc              3       K   | ]  }|  y wr   r   )r   _s     r	   r   z<lambda>.<locals>.<genexpr>%   s     !r   r   r   r   r   r	   r   r   %   s
    R r   c                      g S r   r   r   r   r	   r   r   &   s     r   c                 (    | j                   } |       S r   r+   )r-   r.   s     r	   schedule_invalidr;   !   s     ]]F8Or   name)zRAdam.v1Adam.v1zSGD.v1c                 h    d}| |d}t        j                  d|i      d   }|j                  |k(  sJ y )Nr   z@optimizers
learn_rateconfig)r   resolver@   )r<   r@   cfg	optimizers       r	   test_optimizers_from_configrE   0   s>    Jj
9C  (C1(;I:---r   c                 &   | \  }}}}d|d}t        j                  d|i      d   }|j                  |k(  sJ |j                          |j                  |k(  sJ |j                          |j                  |k(  sJ d|_        |j                  dk(  sJ y )Nr=   r?   rC         ?)r   rB   r@   step_schedules)r2   lrlr_next1lr_next2lr_next3rC   rD   s          r	   $test_optimizer_schedules_from_configrM   8   s    '5$B(H#2
6C  %.u5I8+++8+++8+++I3&&&r   c                     | \  }}}}t        |      }|j                  |k(  sJ |j                          |j                  |k(  sJ |j                          |j                  |k(  sJ d|_        |j                  dk(  sJ y )Nr@   rG   )r   r@   rH   )r2   rI   rJ   rK   rL   rD   s         r	   test_optimizer_schedules_validrP   E   s    '5$B(HR(I8+++8+++8+++I3&&&r   c                 x    t        j                  t              5  t        |        d d d        y # 1 sw Y   y xY w)NrO   )pytestraises
ValueErrorr   )r;   s    r	    test_optimizer_schedules_invalidrU   Q   s,    	z	" /-./ / /s   09c                     t        ddddd      }  | dt        j                  d      t        j                  d            \  }}t        j                  |t        j                  d            sJ t        j                  g d	d
      j                  d      }t        j                  g dgd
      j                  d      } | d||       t        ddd      }  | d||       y )Nr   FTr   )r@   use_averages	use_radamL2L2_is_weight_decay)r   x)      r   )rG   r&   r&   rG   f)dtype)   )g      r&   r&   rG   )r@   beta1beta2)r\   r[   )r   numpyzerosarray_equalasarrayreshape)rD   r8   gradientWdWs        r	   test_optimizer_initrk   V   s     I Hekk&&95;;q>JKAxXu{{1~666*#6>>tDA	-.c	:	B	B4	HBh2U#SAIh2r   )rc   rR   	thinc.apir   r   r
   r   fixturer2   r;   markparametrizerE   rM   rP   rU   rk   r   r   r	   <module>rp      s      )
 	ue,	'u=	A3SQ	,eUEB	 #sC0	sE51 
 
  		)	 		  !BC. D.
'	'/
r   