
    ~Wh                     2   d Z ddlZddlmc mZ ddl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dS )z/A simple functional keras model with one layer.    N)model_collection_base)gradient_descent
   c                     t          j        t          j                            dd          t           j                  } t          j        t          j                            dd          t           j                  }t          j        t          j                            dd          t           j                  }| ||fS )Ni     dtype   )tfconstantnprandomrandfloat32)x_trainy_train	x_predicts      d/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/keras/distribute/simple_models.py_get_data_for_simple_modelsr      s    k")..q11DDDGk")..q11DDDGBINN4332:FFFIGY&&    c                   $    e Zd ZdZd Zd Zd ZdS )SimpleFunctionalModelz)A simple functional model and its inputs.c                 P   d}t           j                            dt          j                  }t          j                            dt          j        |          |          }t          j        ||          }t          j        d          }|	                    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     LT<<Lq
EEaHH1a000$(u===	55'YGG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   #   sG        33
 
 
- - -    r   r   c                   $    e Zd ZdZd Zd Zd ZdS )SimpleSequentialModelz)A simple sequential model and its inputs.c                    d}t          j                    }t           j                            dt          j        |d          }|                    |           t          j        d          }|	                    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<   s      ""LRZkQ  
 
 			!$(u===	55'YGG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   sG        33  - - -    r   rH   c                   $     e Zd Z fdZd Z xZS )_SimpleModelc                     t                                                       t          j                            dt
          j                  | _        d S )Nr
   r   )super__init__r(   r)   r+   r   r   _dense_layer)r/   	__class__s    r   rS   z_SimpleModel.__init__Q   s>    !L..q
.CCr   c                 ,    |                      |          S r7   )rT   )r/   r   s     r   callz_SimpleModel.callU   s      (((r   )rB   rC   rD   rS   rW   __classcell__)rU   s   @r   rP   rP   P   sL        D D D D D) ) ) ) ) ) )r   rP   c                   $    e Zd ZdZd Zd Zd ZdS )SimpleSubclassModelz%A simple subclass model and its data.c                     t                      }t          j        d          }|                    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\   sK    $(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   sG        //  - - -    r   rZ   c                   4    e Zd Zd Zej        d             ZdS )_SimpleModulec                 8    t          j        d          | _        d S )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    v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dS )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   sG        99  - - -    r   rh   )rE   numpyr   tensorflow.compat.v2compatv2r   r(   keras.distributer   keras.optimizers.legacyr   r>   r   ModelAndInputr   rH   r,   rP   rZ   Moduler`   rh   rF   r   r   <module>rt      s   6 5     ! ! ! ! ! ! ! ! !  2 2 2 2 2 2 4 4 4 4 4 4' ' '    1?   ,    1?   .) ) ) ) )5; ) ) )    /=   &    BI       /=     r   