
    2Vh                        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 dlmZ ee	eeeeeeeeeeehZ e D  ci c]  } | jB                  jE                         |  c} Z# ed      d        Z$ ed      dd       Z% ed      d        Z& eg d       G d d             Z'yc c} w )    )keras_export)Adadelta)	Adafactor)Adagrad)Adam)Adamax)AdamW)Ftrl)Lion)LossScaleOptimizer)Muon)Nadam)	Optimizer)RMSprop)SGD)serialization_libzkeras.optimizers.serializec                 ,    t        j                  |       S )zReturns the optimizer configuration as a Python dict.

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

    Returns:
        Python dict which contains the configuration of the optimizer.
    )r   serialize_keras_object)	optimizers    M/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/optimizers/__init__.py	serializer   $   s     33I>>    zkeras.optimizers.deserializeNc                     | d   j                         t        v r| d   j                         | d<   t        j                  | t        |      S )a\  Returns a Keras optimizer object via its configuration.

    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.
    
class_name)module_objectscustom_objects)lowerALL_OBJECTS_DICTr   deserialize_keras_object)configr   s     r   deserializer!   1   sO     l!!#'77%l399;|55'% r   zkeras.optimizers.getc                     | yt        | t              rt        |       }n#t        | t              r| i d}t        |      }n| }t        |t              r|S t        d|        )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).

    Returns:
        A Keras Optimizer instance.
    N)r   r    z*Could not interpret optimizer identifier: )
isinstancedictr!   strr   
ValueError)
identifierobjr    s      r   getr)   I   sf     	J	%*%	J	$ *b9&!#y!

A*N
OOr   )zkeras.optimizers.legacy.Adagradzkeras.optimizers.legacy.Adamzkeras.optimizers.legacy.Ftrlzkeras.optimizers.legacy.RMSpropzkeras.optimizers.legacy.SGDz!keras.optimizers.legacy.Optimizerc                       e Zd Zd Zy)LegacyOptimizerWarningc                     t        d      )Na;  `keras.optimizers.legacy` is not supported in Keras 3. When using `tf.keras`, to continue using a `tf.keras.optimizers.legacy` optimizer, you can install the `tf_keras` package (Keras 2) and set the environment variable `TF_USE_LEGACY_KERAS=True` to configure TensorFlow to use `tf_keras` when accessing `tf.keras`.)ImportError)selfargskwargss      r   __init__zLegacyOptimizerWarning.__init__s   s    P
 	
r   N)__name__
__module____qualname__r1    r   r   r+   r+   h   s    
r   r+   )N)(keras.src.api_exportr   keras.src.optimizers.adadeltar   keras.src.optimizers.adafactorr   keras.src.optimizers.adagradr   keras.src.optimizers.adamr   keras.src.optimizers.adamaxr   keras.src.optimizers.adamwr	   keras.src.optimizers.ftrlr
   keras.src.optimizers.lionr   )keras.src.optimizers.loss_scale_optimizerr   keras.src.optimizers.muonr   keras.src.optimizers.nadamr   keras.src.optimizers.optimizerr   keras.src.optimizers.rmspropr   keras.src.optimizers.sgdr   keras.src.savingr   ALL_OBJECTSr2   r   r   r   r!   r)   r+   )clss   0r   <module>rH      s   - 2 4 0 * . , * * H * , 4 0 ( . 	
	 :EE#CLL&&(#-E  *+	? ,	? ,- .. $%P &P< 	
 
	
c Fs   4"C