Запись весов в TensorFlow
Метод save_weights переносит
текущие параметры модели в файл
на диске. Архитектуру цепочки он
не сохраняет - только числа, которые
лежат в слоях на момент вызова.
Создадим модель, прогоним одну
строку и запишем параметры в файл
weights.weights.h5:
import os
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(2,)),
])
row = tf.constant([[1.0, 2.0]])
model(row)
model.save_weights("weights.weights.h5")
print(os.path.isfile("weights.weights.h5"))
# выведет True
Имя файла задают строкой. После записи тот же путь передают при чтении в другую модель той же структуры. Перед повторной записи в тот же файл старый можно удалить вручную, если он больше не нужен.
import os
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(2, input_shape=(3,)),
])
model(tf.constant([[0.5, 1.0, -0.5]]))
path = "copy.weights.h5"
if os.path.isfile(path):
os.remove(path)
model.save_weights(path)
print(os.path.isfile(path))
# выведет True
Подготовьте цепочку с одним
полносвязным блоком на 1
выход для двух признаков.
Прогоните строку [2.0, -1.0]
и сохраните параметры в файл
task1.weights.h5.
Выведите, появился ли такой
файл в текущей папке.
Соберите модель из блока на
3 числа для входа длины
2. После одного прогона
запишите параметры в
task2.weights.h5 и выведите
имя файла, если он есть на диске.
Создайте цепочку: первый блок
на 2 выхода при 4
признаках, второй - на одно число.
Подайте одну строку нулей длины
4, сохраните параметры
в chain.weights.h5 и
выведите результат проверки
наличия файла.