tf.keras.utils.deserialize_keras_object
Восстановление объекта путём десериализации словаря настроек.
tf.keras.utils.deserialize_keras_object(
config, custom_objects=None, safe_mode=True, **kwargs
)
Словарь настроек — это словарь Python, состоящий из пары ключ-значение и представляющий объект Keras, например, Optimizer, Layer, Metrics и т. д. Библиотека сохранения и загрузки использует следующие ключи для записи информации об объекте Keras:
-
class_name: Строка. Это имя класса, точно так, как оно определено в исходном коде, например, "LossesContainer". -
config: Словарь. Библиотечные или пользовательские пары ключ-значение, хранящие конфигурацию объекта, полученные с помощьюobject.get_config(). -
module: Строка. Путь к модулю Python. Встроенные классы Keras ожидают наличия префиксаkeras. -
registered_name: Строка. Ключ, под которым класс зарегистрирован через APIkeras.saving.register_keras_serializable(package, name). Ключ имеет формат '{пакет}>{имя}', гдеpackageиname— аргументы, переданные вregister_keras_serializable(). Еслиnameне указан, используется имя класса. Еслиregistered_nameуспешно разрешит класс (который был зарегистрирован), значенияclass_nameиconfigв словаре не будут использоваться.registered_nameиспользуется только для классов, не являющихся встроенными.
Например, следующий словарь представляет встроенный оптимизатор Adam с соответствующей конфигурацией:
dict_structure = {
"class_name": "Adam",
"config": {
"amsgrad": false,
"beta_1": 0.8999999761581421,
"beta_2": 0.9990000128746033,
"decay": 0.0,
"epsilon": 1e-07,
"learning_rate": 0.0010000000474974513,
"name": "Adam"
},
"module": "keras.optimizers",
"registered_name": None
}
# Returns an `Adam` instance identical to the original one.
deserialize_keras_object(dict_structure)
Если у класса нет экспортированного пространства имён Keras, библиотека отслеживает его по module и class_name. Например:
dict_structure = {
"class_name": "MetricsList",
"config": {
...
},
"module": "keras.trainers.compile_utils",
"registered_name": "MetricsList"
}
# Returns a `MetricsList` instance identical to the original one.
deserialize_keras_object(dict_structure)
И следующий словарь представляет пользовательскую функцию потерь MeanSquaredError:
@keras.saving.register_keras_serializable(package='my_package')
class ModifiedMeanSquaredError(keras.losses.MeanSquaredError):
...
dict_structure = {
"class_name": "ModifiedMeanSquaredError",
"config": {
"fn": "mean_squared_error",
"name": "mean_squared_error",
"reduction": "auto"
},
"registered_name": "my_package>ModifiedMeanSquaredError"
}
# Returns the `ModifiedMeanSquaredError` object
deserialize_keras_object(dict_structure)
| Аргументы | |
|---|---|
config | Словарь Python, описывающий объект. |
custom_objects | Словарь Python, содержащий соответствие между именами пользовательских объектов и соответствующими классами или функциями. |
safe_mode | Булево значение, запрещающее небезопасную lambda десериализацию. Когда safe_mode=False, загрузка объекта может потенциально вызвать выполнение произвольного кода. Этот аргумент применим только к формату модели Keras v3. По умолчанию True. |
| Возвращаемое значение | |
|---|---|
Объект, описанный словарем config. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/utils/deserialize_keras_object