Ë
    ähÕh÷  ã                   óÐ   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ d„ Zdd„Zd„ Zy)zcBuilt-in optimizer classes.

For more examples see the base class `tf.keras.optimizers.Optimizer`.
é    )Úbackend)Ú	Optimizer)ÚTFOptimizer)Úadadelta)Úadagrad)Úadam)Úadamax)Úftrl)Úgradient_descent)Únadam)Úoptimizer_v2)Úrmsprop)Údeserialize_keras_object©Úserialize_keras_object©Ú	optimizerc                 ó   — t        | «      S )a@  Serialize the optimizer configuration to JSON compatible python dict.

  The configuration can be used for persistence and reconstruct the `Optimizer`
  instance again.

  >>> tf.keras.optimizers.serialize(tf.keras.optimizers.SGD())
  {'class_name': 'SGD', 'config': {'name': 'SGD', 'learning_rate': 0.01,
                                   'decay': 0.0, 'momentum': 0.0,
                                   'nesterov': False}}

  Args:
    optimizer: An `Optimizer` instance to serialize.

  Returns:
    Python dict which contains the configuration of the input optimizer.
  r   r   s    ú`/var/www/html/dev/engine/venv/lib/python3.12/site-packages/tensorflow/python/keras/optimizers.pyÚ	serializer   &   s   € ô" 
  	Ó	*Ð*ó    Nc                 ó¤  — ddl m} t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t         j"                  |j$                  |j$                  dœ
}| d   j'                  «       |v r| d   j'                  «       | d<   t)        | ||d¬«      S )a-  Inverse of the `serialize` function.

  Args:
      config: Optimizer configuration dictionary.
      custom_objects: Optional dictionary mapping names (strings) to custom
        objects (classes and functions) to be considered during deserialization.

  Returns:
      A Keras Optimizer instance.
  r   )Úloss_scale_optimizer)
r   r   r   r	   r   r   Úsgdr
   ÚlossscaleoptimizerÚlossscaleoptimizerv1Ú
class_namer   )Úmodule_objectsÚcustom_objectsÚprintable_module_name)Ú'tensorflow.python.keras.mixed_precisionr   Úadadelta_v2ÚAdadeltaÚ
adagrad_v2ÚAdagradÚadam_v2ÚAdamÚ	adamax_v2ÚAdamaxÚnadam_v2ÚNadamÚ
rmsprop_v2ÚRMSpropÚgradient_descent_v2ÚSGDr
   ÚFtrlÚLossScaleOptimizerÚlowerr   )Úconfigr   r   Úall_classess       r   Údeserializer5   :   s®   € õ Kä×&Ñ&Ü×#Ñ#Ül‰lÜ× Ñ Ü~‰~Ü×#Ñ#Ü ×$Ñ$Üi‰iØ0×CÑCð 3×EÑEñ€+ð" ˆLÑ×ÑÓ! [Ñ0Ø! ,Ñ/×5Ñ5Ó7€Fˆ<ÑÜ	!ØØ Ø#Ø'ô	
)ð )r   c                 óz  — t        | t        t        j                  f«      r| S t        | t        j                  «      r"t        | «      }t        j                  |«       |S t        | t        «      rt        | «      S t        | t        «      rt        | «      i dœ}t        |«      S t        dj                  | «      «      ‚)aÌ  Retrieves a Keras Optimizer instance.

  Args:
      identifier: Optimizer identifier, one of
          - String: name of an optimizer
          - Dictionary: configuration dictionary. - Keras Optimizer instance (it
            will be returned unchanged). - TensorFlow Optimizer instance (it
            will be wrapped as a Keras Optimizer).

  Returns:
      A Keras Optimizer instance.

  Raises:
      ValueError: If `identifier` cannot be interpreted.
  )r   r3   z,Could not interpret optimizer identifier: {})Ú
isinstancer   r   ÚOptimizerV2Útf_optimizer_moduler   r   Útrack_tf_optimizerÚdictr5   ÚstrÚ
ValueErrorÚformat)Ú
identifierÚoptr3   s      r   ÚgetrA   b   s¢   € ô  
œY¬×(@Ñ(@ÐAÔBØÐä*Ô1×;Ñ;Ô<Ü
jÓ
!€CÜ×Ñ˜sÔ#Ø€JÜ*œdÔ#ÜzÓ"Ð"Ü*œcÔ"Ü 
›O°rÑ:€FÜvÓÐä
Ø6×=Ñ=¸jÓIóKð Kr   )N) Ú__doc__Útensorflow.python.kerasr   Ú$tensorflow.python.keras.optimizer_v1r   r   Ú$tensorflow.python.keras.optimizer_v2r   r"   r   r$   r   r&   r	   r(   r
   r   r.   r   r*   r   r   r,   Ú+tensorflow.python.keras.utils.generic_utilsr   r   Útensorflow.python.trainingr   r9   r   r5   rA   © r   r   ú<module>rI      sJ   ðñ õ
 ,Ý :Ý <Ý HÝ FÝ @Ý DÝ 5Ý XÝ BÝ =Ý FÝ PÝ NÝ Gò+ó(%)óPKr   