
    i                     `   d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZmZ  ej                  d      dd       Zd Zd Zd	 Z ej                  e ej&                  eej(                  j+                  e d
             ej&                  eej(                  j+                  e d            g      d        Zej(                  j.                  ej(                  j1                   e j2                         dk(  dd      ej(                  j5                  ddg      d                      Zy)    N)AdamPyTorchWrapperReluSoftmaxTensorFlowWrapperchaincloneget_current_ops)has_tensorflow	has_torchmodule)scopec                     t        j                  d       dd l}|j                         \  \  }}\  }}|d |  |d |  f|d |  |d |  ffS )Nml_datasetsr   )pytestimportorskipr   mnist)limitr   train_Xtrain_Ydev_Xdev_Ys         n/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/tests/layers/test_mnist.pyr   r      s\    
&)4):):)<&WgFUOWVe_-fuuVe}/MMM    c                 X    t        t        t        | |      d      t        d|             S )N)nOdropout   
   )r   r	   r   r   )widthr   nIr   s       r   create_relu_softmaxr"      s$    tug6:GB<NOOr   c                     dd l dd ldd lmc m  G fddj                  j
                        t         | |||            S )Nr   c                   .     e Zd Z fdZfdZ xZS ),create_wrapped_pytorch.<locals>.PyTorchModelc                 &   t         |           j                  j                  |      | _        j                  j                  |      | _        j                  j                  ||      | _        j                  j                  ||      | _        y N)	super__init__nn	Dropout2ddropout1dropout2Linearfc1fc2)selfr    r   r!   r   PyTorchModel	__class__torchs        r   r)   z5create_wrapped_pytorch.<locals>.PyTorchModel.__init__%   sh    ,.0!HH..w7DM!HH..w7DMxxr51DHxxub1DHr   c                     j                  |      }| j                  |      }| j                  |      }j                  |      }| j                  |      }| j	                  |      }j                  |d      }|S )N   )dim)relur,   r/   r-   r0   log_softmax)r1   xoutputFs      r   forwardz4create_wrapped_pytorch.<locals>.PyTorchModel.forward,   sj    q	Aa AAq	Aa AA]]1!],FMr   )__name__
__module____qualname__r)   r=   __classcell__)r3   r<   r2   r4   s   @r   r2   r%   $   s    	2	 	r   r2   )r4   torch.nntorch.nn.functionalr*   
functionalModuler   )r    r   r!   r   r<   r2   r4   s       @@@r   create_wrapped_pytorchrF      s@    ## uxx $ ,ub"g>??r   c                 8   ddl m}m} ddlm}  |       }|j                   || d|f             |j                   ||             |j                   || d             |j                   ||             |j                   ||d              t        |      S )Nr   )DenseDropout)
Sequentialr8   )
activationinput_shape)rK   )tensorflow.keras.layersrH   rI   tensorflow.keras.modelsrJ   addr   )r    r   r!   r   rH   rI   rJ   tf_models           r   create_wrapped_tensorflowrQ   9   sy    62|HLLubUCDLL!"LLu01LL!"LLrd+,X&&r   zneeds PyTorch)reason)markszneeds TensorFlow)paramsc                     | j                   S r'   )param)requests    r   create_modelrX   F   s     ==r   DarwinzSSL: CERTIFICATE_VERIFY_FAILEDF)rR   strict)r    nb_epoch	min_score)       g?c                 
   d}d}|\  \  }}\  }	}
 || ||j                   d   |j                   d         }|j                  |d d |d d        t        d      }g }g }t               }t	        |      D ]9  }|j
                  j                  |||d	      D ]k  \  }}|j                  |      \  }}|j                  |      } |||z
         |j                  |       |j                  ||z
  d
z  j                                m d}d}|j
                  j                  ||	|
      D ]o  \  }}|j                  |      }|j                  |      }||j                  d      |j                  d      k(  j                         z  }||j                   d   z  }q ||z  }|j                  |       < |d   |d   k  sJ |       |d   dk  r|d   |d   kD  sJ |       t        |D cg c]  }||kD  	 c}      sJ |       y c c}w )N   g?r6   )r!   r      )XYgMbP?T)shuffler   r   )axisg      ?)shape
initializer   r
   rangeops
multibatchbegin_updateasarrayfinish_updateappendsumpredictargmaxany)r    r[   r\   rX   r   
batch_sizer   r   r   r   r   model	optimizerlossesscoresrj   irb   rc   Yhbackpropcorrecttotalscores                           r   test_small_end_to_endr   S   s     JG).&WgGMM!,<qAQRE	wr{gbqk2UIFF

C8_ II((Wgt(T 	1DAq --a0LBRBR!V	*MMBFq=--/0	1 II((UEB 	!DAqq!BRB		q	)QXX1X-==BBDDGRXXa[ E	! %e%& ":q	!)6)!ay3bzF1I%-v-%v6e	!67??76s   %H )i  )platformr   	thinc.apir   r   r   r   r   r   r	   r
   thinc.compatr   r   fixturer   r"   rF   rQ   rV   markskipifrX   slowxfailsystemparametrizer    r   r   <module>r      s=    	 	 	 3 hN  NP@4
'  	+6;;3E3E)m\k3E3lm.fkk6H6H^I[dv6H6wx HOO!+  
 ;m_M!@ N !@r   