
    6bi                     L   S r SSKrSSKJs  Jr  SSKJr	  SSK
Jr  SSKJr  SrS r " S S\R                   5      r " S	 S
\R                   5      r " S S\	R&                  5      r " S S\R                   5      r " S S\R,                  5      r " S S\R                   5      rg)z/A simple functional keras model with one layer.    N)model_collection_base)gradient_descent
   c                     [         R                  " [        R                  R	                  SS5      [         R
                  S9n [         R                  " [        R                  R	                  SS5      [         R
                  S9n[         R                  " [        R                  R	                  SS5      [         R
                  S9nXU4$ )Ni     dtype   )tfconstantnprandomrandfloat32)x_trainy_train	x_predicts      _/home/james-whalen/.local/lib/python3.13/site-packages/tf_keras/src/distribute/simple_models.py_get_data_for_simple_modelsr      sv    kk"))..q1DGkk"))..q1DGBIINN432::FIY&&    c                   *    \ rS rSrSrS rS rS rSrg)SimpleFunctionalModel#   z)A simple functional model and its inputs.c                 <   Sn[         R                  R                  S[        R                  S9n[         R                  R                  S[        R                  US9" U5      n[         R                  " X4S9n[        R                  " SS9nUR                  S	S
/US9  U$ )Noutput_1)r   )shaper	   r
   )r	   name)inputsoutputsMbP?learning_ratemsemaelossmetrics	optimizer)
keraslayersInputr   r   DenseModelr   SGDcompile)selfkwargsoutput_namexymodelr(   s          r   	get_modelSimpleFunctionalModel.get_model&   s     LLT<LLq

EaH10$((u=	55'YGr   c                     [        5       $ Nr   r0   s    r   get_dataSimpleFunctionalModel.get_data2       *,,r   c                     [         $ r9   _BATCH_SIZEr;   s    r   get_batch_size$SimpleFunctionalModel.get_batch_size5       r    N	__name__
__module____qualname____firstlineno____doc__r6   r<   rB   __static_attributes__rE   r   r   r   r   #   s    3
-r   r   c                   *    \ rS rSrSrS rS rS rSrg)SimpleSequentialModel9   z)A simple sequential model and its inputs.c                     Sn[         R                  " 5       n[         R                  R                  S[        R
                  USS9nUR                  U5        [        R                  " SS9nUR                  SS/US	9  U$ )
Nr   r
   r   )r	   r   	input_dimr    r!   r#   r$   r%   )
r)   
Sequentialr*   r,   r   r   addr   r.   r/   )r0   r1   r2   r5   r4   r(   s         r   r6   SimpleSequentialModel.get_model<   sq       "LLRZZkQ  
 			!$((u=	55'YGr   c                     [        5       $ r9   r:   r;   s    r   r<   SimpleSequentialModel.get_dataI   r>   r   c                     [         $ r9   r@   r;   s    r   rB   $SimpleSequentialModel.get_batch_sizeL   rD   r   rE   NrF   rE   r   r   rN   rN   9   s    3-r   rN   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )_SimpleModelP   c                    > [         TU ]  5         [        R                  R	                  S[
        R                  S9U l        g )Nr
   r   )super__init__r)   r*   r,   r   r   _dense_layer)r0   	__class__s    r   r^   _SimpleModel.__init__Q   s.    !LL..q

.Cr   c                 $    U R                  U5      $ r9   r_   )r0   r   s     r   call_SimpleModel.callU   s      ((r   rc   )rG   rH   rI   rJ   r^   rd   rL   __classcell__)r`   s   @r   rZ   rZ   P   s    D) )r   rZ   c                   *    \ rS rSrSrS rS rS rSrg)SimpleSubclassModelY   z%A simple subclass model and its data.c                 h    [        5       n[        R                  " SS9nUR                  SS/SUS9  U$ )Nr    r!   r#   r$   F)r&   r'   cloningr(   )rZ   r   r.   r/   )r0   r1   r5   r(   s       r   r6   SimpleSubclassModel.get_model\   s<    $((u=	) 	 	
 r   c                     [        5       $ r9   r:   r;   s    r   r<   SimpleSubclassModel.get_datae   r>   r   c                     [         $ r9   r@   r;   s    r   rB   "SimpleSubclassModel.get_batch_sizeh   rD   r   rE   NrF   rE   r   r   rh   rh   Y   s    /-r   rh   c                   >    \ rS rSrS r\R                  S 5       rSrg)_SimpleModulel   c                 :    [         R                  " S5      U l        g )Ng      @)r   Variablevr;   s    r   r^   _SimpleModule.__init__m   s    S!r   c                      U R                   U-  $ r9   rv   )r0   r3   s     r   __call___SimpleModule.__call__p   s    vvzr   ry   N)	rG   rH   rI   rJ   r^   r   functionrz   rL   rE   r   r   rr   rr   l   s    " [[ r   rr   c                   *    \ rS rSrSrS rS rS rSrg)SimpleTFModuleModelu   z/A simple model based on tf.Module and its data.c                     [        5       nU$ r9   )rr   )r0   r1   r5   s      r   r6   SimpleTFModuleModel.get_modelx   s    r   c                     [        5       $ r9   r:   r;   s    r   r<   SimpleTFModuleModel.get_data|   r>   r   c                     [         $ r9   r@   r;   s    r   rB   "SimpleTFModuleModel.get_batch_size   rD   r   rE   NrF   rE   r   r   r~   r~   u   s    9-r   r~   )rK   numpyr   tensorflow.compat.v2compatv2r   tf_keras.srcsrcr)   tf_keras.src.distributer   tf_keras.src.optimizers.legacyr   rA   r   ModelAndInputr   rN   r-   rZ   rh   Modulerr   r~   rE   r   r   <module>r      s    6  ! !  9 ;'1?? ,1?? .)5;; )/== &BII /== r   