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}', где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