
    0h                     L   d Z ddlZddlmc mZ ddlmZ	 ddl
mZ ddlmZ dZd Z G d dej                         Z G d	 d
ej                         Z G d de	j&                        Z G d dej                         Z G d dej,                        Z G d dej                         Zy)z/A simple functional keras model with one layer.    N)model_collection_base)gradient_descent
   c                     t        j                  t        j                  j	                  dd      t         j
                        } t        j                  t        j                  j	                  dd      t         j
                        }t        j                  t        j                  j	                  dd      t         j
                        }| ||fS )Ni     dtype   )tfconstantnprandomrandfloat32)x_trainy_train	x_predicts      _/var/www/html/engine/venv/lib/python3.12/site-packages/tf_keras/src/distribute/simple_models.py_get_data_for_simple_modelsr      sx    kk"))..q1DGkk"))..q1DGBIINN432::FIGY&&    c                   "    e Zd ZdZd Zd Zd Zy)SimpleFunctionalModelz)A simple functional model and its inputs.c                 V   d}t         j                  j                  dt        j                        }t        j                  j                  dt        j                  |      |      }t        j                  ||      }t        j                  d      }|j                  d	d
g|       |S )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_modelzSimpleFunctionalModel.get_model&   s     LLT<LLq

EaH1a0$((u=	55'YGr   c                     t               S Nr   r/   s    r   get_datazSimpleFunctionalModel.get_data2       *,,r   c                     t         S r7   _BATCH_SIZEr9   s    r   get_batch_sizez$SimpleFunctionalModel.get_batch_size5       r   N__name__
__module____qualname____doc__r5   r:   r?    r   r   r   r   #   s    3
-r   r   c                   "    e Zd ZdZd Zd Zd Zy)SimpleSequentialModelz)A simple sequential model and its inputs.c                    d}t        j                         }t         j                  j                  dt        j
                  |d      }|j                  |       t        j                  d      }|j                  ddg|	       |S )
Nr   r
   r   )r	   r   	input_dimr   r    r"   r#   r$   )
r(   
Sequentialr)   r+   r   r   addr   r-   r.   )r/   r0   r1   r4   r3   r'   s         r   r5   zSimpleSequentialModel.get_model<   sq       "LLRZZkQ  
 			!$((u=	55'YGr   c                     t               S r7   r8   r9   s    r   r:   zSimpleSequentialModel.get_dataI   r;   r   c                     t         S r7   r=   r9   s    r   r?   z$SimpleSequentialModel.get_batch_sizeL   r@   r   NrA   rF   r   r   rH   rH   9   s    3-r   rH   c                   $     e Zd Z fdZd Z xZS )_SimpleModelc                     t         |           t        j                  j	                  dt
        j                        | _        y )Nr
   r   )super__init__r(   r)   r+   r   r   _dense_layer)r/   	__class__s    r   rS   z_SimpleModel.__init__Q   s.    !LL..q

.Cr   c                 $    | j                  |      S r7   )rT   )r/   r   s     r   callz_SimpleModel.callU   s      ((r   )rB   rC   rD   rS   rW   __classcell__)rU   s   @r   rP   rP   P   s    D)r   rP   c                   "    e Zd ZdZd Zd Zd Zy)SimpleSubclassModelz%A simple subclass model and its data.c                 r    t               }t        j                  d      }|j                  ddgd|       |S )Nr   r    r"   r#   F)r%   r&   cloningr'   )rP   r   r-   r.   )r/   r0   r4   r'   s       r   r5   zSimpleSubclassModel.get_model\   s<    $((u=	) 	 	
 r   c                     t               S r7   r8   r9   s    r   r:   zSimpleSubclassModel.get_datae   r;   r   c                     t         S r7   r=   r9   s    r   r?   z"SimpleSubclassModel.get_batch_sizeh   r@   r   NrA   rF   r   r   rZ   rZ   Y   s    /-r   rZ   c                   6    e Zd Zd Zej
                  d        Zy)_SimpleModulec                 8    t        j                  d      | _        y )Ng      @)r   Variablevr9   s    r   rS   z_SimpleModule.__init__m   s    S!r   c                      | j                   |z  S r7   )rc   )r/   r2   s     r   __call__z_SimpleModule.__call__p   s    vvzr   N)rB   rC   rD   rS   r   functionre   rF   r   r   r`   r`   l   s    " [[ r   r`   c                   "    e Zd ZdZd Zd Zd Zy)SimpleTFModuleModelz/A simple model based on tf.Module and its data.c                     t               }|S r7   )r`   )r/   r0   r4   s      r   r5   zSimpleTFModuleModel.get_modelx   s    r   c                     t               S r7   r8   r9   s    r   r:   zSimpleTFModuleModel.get_data|   r;   r   c                     t         S r7   r=   r9   s    r   r?   z"SimpleTFModuleModel.get_batch_size   r@   r   NrA   rF   r   r   rh   rh   u   s    9-r   rh   )rE   numpyr   tensorflow.compat.v2compatv2r   tf_keras.srcsrcr(   tf_keras.src.distributer   tf_keras.src.optimizers.legacyr   r>   r   ModelAndInputr   rH   r,   rP   rZ   Moduler`   rh   rF   r   r   <module>rv      s    6  ! !  9 ;'1?? ,1?? .)5;; )/== &BII /== r   