o
    i e                     @   sf   d Z ddlZddlmZ ddlmZ e aeddddZeddd	d
Z	eddddZ
dS )z>Functions that save the model's config into different formats.    N)keras_export)serializationzkeras.models.model_from_configc                 C   sZ   t | trtd|  dddlm} ttds#|j  |jj	j
t_
tj| tj
|ddS )aO  Instantiates a Keras model from its config.

    Usage:
    ```
    # for a Functional API model
    tf.keras.Model().from_config(model.get_config())

    # for a Sequential model
    tf.keras.Sequential().from_config(model.get_config())
    ```

    Args:
        config: Configuration dictionary.
        custom_objects: Optional dictionary mapping names
            (strings) to custom classes or functions to be
            considered during deserialization.

    Returns:
        A Keras model instance (uncompiled).

    Raises:
        TypeError: if `config` is not a dictionary.
    zG`model_from_config` expects a dictionary, not a list. Received: config=z8. Did you meant to use `Sequential.from_config(config)`?r   )layersALL_OBJECTSlayer)module_objectscustom_objectsprintable_module_name)
isinstancelist	TypeError	keras.srcr   hasattrMODULE_OBJECTSr   populate_deserializable_objectsLOCALr   deserialize_keras_object)configr   r    r   S/var/www/myenv/lib/python3.10/site-packages/keras/src/saving/legacy/model_config.pymodel_from_config   s    


r   zkeras.models.model_from_yamlc                 C   s   t d)a3  Parses a yaml model configuration file and returns a model instance.

    Note: Since TF 2.6, this method is no longer supported and will raise a
    RuntimeError.

    Args:
        yaml_string: YAML string or open file encoding a model configuration.
        custom_objects: Optional dictionary mapping names
            (strings) to custom classes or functions to be
            considered during deserialization.

    Returns:
        A Keras model instance (uncompiled).

    Raises:
        RuntimeError: announces that the method poses a security risk
    zMethod `model_from_yaml()` has been removed due to security risk of arbitrary code execution. Please use `Model.to_json()` and `model_from_json()` instead.)RuntimeError)yaml_stringr   r   r   r   model_from_yamlJ   s   r   zkeras.models.model_from_jsonc                 C   s   ddl m} || |dS )ai  Parses a JSON model configuration string and returns a model instance.

    Usage:

    >>> model = tf.keras.Sequential([
    ...     tf.keras.layers.Dense(5, input_shape=(3,)),
    ...     tf.keras.layers.Softmax()])
    >>> config = model.to_json()
    >>> loaded_model = tf.keras.models.model_from_json(config)

    Args:
        json_string: JSON string encoding a model configuration.
        custom_objects: Optional dictionary mapping names
            (strings) to custom classes or functions to be
            considered during deserialization.

    Returns:
        A Keras model instance (uncompiled).
    r   )deserialize_from_json)r   )keras.src.layersr   )json_stringr   r   r   r   r   model_from_jsond   s   r   )N)__doc__	threading tensorflow.python.util.tf_exportr   keras.src.saving.legacyr   localr   r   r   r   r   r   r   r   <module>   s   .