o
    ·2úh†  ã                   @   s<  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 dd„ e D ƒZ!edƒdd„ ƒZ"edƒd dd„ƒZ#edƒdd„ ƒZ$eg d¢ƒG dd„ dƒƒZ%dS )!é    )Úkeras_export)ÚAdadelta)Ú	Adafactor)ÚAdagrad)ÚAdam)ÚAdamax)ÚAdamW)ÚFtrl)ÚLion)ÚLossScaleOptimizer)ÚMuon)ÚNadam)Ú	Optimizer)ÚRMSprop)ÚSGD)Úserialization_libc                 C   s   i | ]}|j  ¡ |“qS © )Ú__name__Úlower)Ú.0Úclsr   r   úX/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/optimizers/__init__.pyÚ
<dictcomp>!   s    r   zkeras.optimizers.serializec                 C   s
   t  | ¡S )zÓReturns 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)Ú	optimizerr   r   r   Ú	serialize$   s   

r   zkeras.optimizers.deserializeNc                 C   s0   | d   ¡ tv r| d   ¡ | d< tj| t|d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)r   ÚALL_OBJECTS_DICTr   Údeserialize_keras_object)Úconfigr   r   r   r   Údeserialize1   s   ýr"   zkeras.optimizers.getc                 C   s^   | du rdS 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!   r   r   r   ÚgetI   s   





r)   )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                   @   s   e Zd Zdd„ ZdS )ÚLegacyOptimizerWarningc                 O   s   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Úkwargsr   r   r   Ú__init__s   s   ÿzLegacyOptimizerWarning.__init__N)r   Ú
__module__Ú__qualname__r/   r   r   r   r   r*   h   s    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_OBJECTSr   r   r"   r)   r*   r   r   r   r   Ú<module>   sR    ó

ÿ
