deserialize_keras_object | R Documentation |
The config dict is a Python dictionary that consists of a set of key-value
pairs, and represents a Keras object, such as an Optimizer
, Layer
,
Metrics
, etc. The saving and loading library uses the following keys to
record information of a Keras object:
class_name
: String. This is the name of the class,
as exactly defined in the source
code, such as "LossesContainer".
config
: Named List. Library-defined or user-defined key-value pairs that store
the configuration of the object, as obtained by object$get_config()
.
module
: String. The path of the python module. Built-in Keras classes
expect to have prefix keras
.
registered_name
: String. The key the class is registered under via
register_keras_serializable(package, name)
API. The
key has the format of '{package}>{name}'
, where package
and name
are
the arguments passed to register_keras_serializable()
. If name
is not
provided, it uses the class name. If registered_name
successfully
resolves to a class (that was registered), the class_name
and config
values in the config dict will not be used. registered_name
is only used for
non-built-in classes.
For example, the following config list represents the built-in Adam optimizer with the relevant config:
config <- list( class_name = "Adam", config = list( amsgrad = FALSE, beta_1 = 0.8999999761581421, beta_2 = 0.9990000128746033, epsilon = 1e-07, learning_rate = 0.0010000000474974513, name = "Adam" ), module = "keras.optimizers", registered_name = NULL ) # Returns an `Adam` instance identical to the original one. deserialize_keras_object(config)
## <keras.src.optimizers.adam.Adam object at 0x0>
If the class does not have an exported Keras namespace, the library tracks
it by its module
and class_name
. For example:
config <- list( class_name = "MetricsList", config = list( ... ), module = "keras.trainers.compile_utils", registered_name = "MetricsList" ) # Returns a `MetricsList` instance identical to the original one. deserialize_keras_object(config)
And the following config represents a user-customized MeanSquaredError
loss:
# define a custom object loss_modified_mse <- Loss( "ModifiedMeanSquaredError", inherit = loss_mean_squared_error) # register the custom object register_keras_serializable(loss_modified_mse) # confirm object is registered get_custom_objects()
## $`keras3>ModifiedMeanSquaredError` ## <class '<r-namespace:keras3>.ModifiedMeanSquaredError'> ## signature: ( ## reduction='sum_over_batch_size', ## name='mean_squared_error', ## dtype=None ## )
get_registered_name(loss_modified_mse)
## [1] "keras3>ModifiedMeanSquaredError"
# now custom object instances can be serialized full_config <- serialize_keras_object(loss_modified_mse()) # the `config` arguments will be passed to loss_modified_mse() str(full_config)
## List of 4 ## $ module : chr "<r-namespace:keras3>" ## $ class_name : chr "ModifiedMeanSquaredError" ## $ config :List of 2 ## ..$ name : chr "mean_squared_error" ## ..$ reduction: chr "sum_over_batch_size" ## $ registered_name: chr "keras3>ModifiedMeanSquaredError"
# and custom object instances can be deserialized deserialize_keras_object(full_config)
## <LossFunctionWrapper(<function mean_squared_error at 0x0>, kwargs={})> ## signature: (y_true, y_pred, sample_weight=None)
# Returns the `ModifiedMeanSquaredError` object
deserialize_keras_object(config, custom_objects = NULL, safe_mode = TRUE, ...)
config |
Named list describing the object. |
custom_objects |
Named list containing a mapping between custom object names the corresponding classes or functions. |
safe_mode |
Boolean, whether to disallow unsafe |
... |
For forward/backward compatability. |
The object described by the config
dictionary.
Other serialization utilities:
get_custom_objects()
get_registered_name()
get_registered_object()
register_keras_serializable()
serialize_keras_object()
with_custom_object_scope()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.