Spec-Zone.ru › TensorFlow 2.9

tf.keras.models.save_model

Просмотреть исходный код на GitHub

Сохраняет модель в виде TensorFlow SavedModel или файла HDF5.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.keras.models.save_model

tf.keras.models.save_model(
    model,
    filepath,
    overwrite=True,
    include_optimizer=True,
    save_format=None,
    signatures=None,
    options=None,
    save_traces=True
)

См. Руководство по сериализации и сохранению для получения подробной информации.

Использование:

model = tf.keras.Sequential([
    tf.keras.layers.Dense(5, input_shape=(3,)),
    tf.keras.layers.Softmax()])
model.save('/tmp/model')
loaded_model = tf.keras.models.load_model('/tmp/model')
x = tf.random.uniform((10, 3))
assert np.allclose(model.predict(x), loaded_model.predict(x))

Обратите внимание, что model.save() является псевдонимом для tf.keras.models.save_model().

Файл SavedModel и HDF5 содержит:

  • конфигурацию модели (топологию)
  • веса модели
  • состояние оптимизатора модели (если есть)

Таким образом, модели можно повторно создать в точно таком же состоянии без какого-либо кода, используемого для определения или обучения модели.

Обратите внимание, что веса модели могут иметь разные имена с областями видимости после загрузки. Имена с областями видимости включают имена модели/слоя, такие как "dense_1/kernel:0". Рекомендуется использовать свойства слоя для доступа к определённым переменным, например, model.get_layer("dense_1").kernel.

Формат сериализации SavedModel

Keras SavedModel использует tf.saved_model.save для сохранения модели и всех отслеживаемых объектов, присоединённых к модели (например, слоев и переменных). Конфигурация модели, веса и оптимизатор сохраняются в SavedModel. Кроме того, для каждого слоя Keras, присоединённого к модели, SavedModel сохраняет:

  • конфигурацию и метаданные — например, имя, тип данных, статус обучения
  • трассированные функции вызова и функции потерь, которые хранятся в виде подграфов TensorFlow.

Трассированные функции позволяют формату SavedModel сохранять и загружать пользовательские слои без исходного определения класса.

Вы можете выбрать, не сохранять ли трассированные функции, отключив опцию save_traces. Это уменьшит время сохранения модели и занимаемое место на диске результатом SavedModel. Если вы включите эту опцию, вам необходимо предоставить все пользовательские определения классов при загрузке модели. См. аргумент custom_objects в tf.keras.models.load_model.

Аргументы
model Экземпляр модели Keras, который нужно сохранить.
filepath Одно из следующего:
  • Строка или pathlib.Path объект, путь к сохранению модели
  • h5py.File объект, куда сохранить модель
overwrite Нужно ли перезаписывать существующую модель в целевом месте или вместо этого спросить пользователя с ручным запросом.
include_optimizer Если True, сохранить состояние оптимизатора вместе с моделью.
save_format 'tf' или 'h5', указывающие, сохранить ли модель в Tensorflow SavedModel или HDF5. По умолчанию 'tf' в TF 2.X и 'h5' в TF 1.X.
signatures Подписи для сохранения с SavedModel. Применимо только к формату 'tf'. Подробнее см. аргумент signatures в tf.saved_model.save.
options (только для формата SavedModel) tf.saved_model.SaveOptions объект, определяющий параметры для сохранения в SavedModel.
save_traces (только для формата SavedModel) При включении SavedModel будет сохранять трассировки функций для каждого слоя. Это можно отключить, чтобы сохранялись только конфигурации каждого слоя. По умолчанию True. Отключение этого уменьшит время сериализации и размер файла, но требует, чтобы все пользовательские слои/модели реализовывали метод get_config().
Возможные исключения
ImportError Если формат сохранения — hdf5, а h5py недоступен.

© 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/versions/r2.9/api_docs/python/tf/keras/models/save_model

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API