Функция saved_model.save
Функция saved_model.save сохраняет модель
TensorFlow в формате SavedModel. Первым параметром
функция принимает объект модели, вторым - путь к
директории для сохранения. Третьим параметром можно
передать список сигнатур для экспорта. Формат
SavedModel содержит полное описание графа вычислений,
веса модели и метаданные, что позволяет загрузить
модель без исходного кода.
Синтаксис
tf.saved_model.save(obj, export_dir, [signatures])
Пример
Давайте создадим простую модель и сохраним ее
в директорию 'my_model':
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(5,))
])
tf.saved_model.save(model, 'my_model')
print("Model saved")
Результат выполнения кода:
"Model saved"
Пример
Давайте создадим модель с сигнатурой и сохраним ее с явным указанием функции:
import tensorflow as tf
class MyModel(tf.Module):
def __init__(self):
super().__init__()
self.w = tf.Variable(tf.constant([1.0, 2.0, 3.0]))
@tf.function(input_signature=[tf.TensorSpec(shape=[None], dtype=tf.float32)])
def __call__(self, x):
return x * self.w
model = MyModel()
tf.saved_model.save(model, 'my_model', signatures={'serving_default': model.__call__})
print("Model with signature saved")
Результат выполнения кода:
"Model with signature saved"
Пример
Давайте сохраним модель Keras и проверим содержимое директории:
import tensorflow as tf
import os
model = tf.keras.Sequential([
tf.keras.layers.Dense(2, input_shape=(3,)),
tf.keras.layers.Dense(1)
])
tf.saved_model.save(model, 'saved_keras_model')
print(sorted(os.listdir('saved_keras_model')))
Результат выполнения кода:
['assets', 'fingerprint.pb', 'saved_model.pb', 'variables']
Смотрите также
-
функцию
saved_model.load,
которая загружает модель из формата SavedModel -
класс
SaveOptions,
который задает опции сохранения модели -
функцию
write_file,
которая записывает данные в файл -
функцию
read_file,
которая читает данные из файла