Запись SavedModel в TensorFlow
Формат SavedModel хранит граф
и веса в каталоге, который потом
можно загрузить без исходного
скрипта. В Keras для каталога
такого формата служит метод
export у собранной модели.
Соберём маленькую цепочку,
один раз прогоним строку
признаков и запишем результат
в каталог hub_sm:
import os
import shutil
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(
2, input_shape=(3,)
),
tf.keras.layers.Dense(1),
])
model(tf.constant([[1.0, 0.0, -1.0]]))
path = "hub_sm"
if os.path.isdir(path):
shutil.rmtree(path)
model.export(path)
print(os.path.isdir(path))
# выведет True
Внутри каталога появляется файл описания графа. Проверим его наличие после записи:
import os
import shutil
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(
1, input_shape=(2,)
),
])
model(tf.constant([[0.5, 1.0]]))
path = "hub_sm"
if os.path.isdir(path):
shutil.rmtree(path)
model.export(path)
flag = os.path.isfile(
os.path.join(path, "saved_model.pb")
)
print(flag)
# выведет True
Подготовьте цепочку: блок
на 2 числа при трёх
признаках и выход на одно
значение. После одного прогона
сохраните её в каталог
task_sm и выведите,
создался ли такой каталог.
Соберите модель с одним
полносвязным слоем для
длины 4. Запишите
её в line_sm и
выведите результат проверки
файла saved_model.pb
внутри.
Создайте двухслойную цепочку
для двух входов и одного
выхода, прогоните строку
нулей и перенесите модель
в каталог copy_sm.
Выведите, остался ли каталог
на диске.