Я использую tf.gradienttape для обучения модели, и успешно сохранять контрольные точки для каждой эпохи.
with train_summary_writer.as_default():
with tf.summary.record_if(True):
for epoch in range(epochs):
for train_id in range(train_start_id, train_end_id):
batch_data_path= train_data_path + 'train_data_' + str(train_id).zfill(6) + ".npy"
batch_data = np.load(data_path)
batch_data = np.transpose(batch_data, (0, 2, 3, 1))
x_inp = np.reshape(np.asarray(batch_data), [-1, 5, 5, 5, 3])
train(loss, model, opt, x_inp)
loss_values = loss(model, x_inp)
reconstructed = np.reshape(model(x_inp), [1, sensor_n, sensor_n, scale_n])
# if int(train_id) % 2000:
tf.summary.scalar('loss',loss_values, step = train_id)
tf.summary.image('original', tf.reshape(x_inp, (step_max, sensor_n, sensor_n, scale_n)), max_outputs=10, step=train_id)
tf.summary.image('reconstructed', reconstructed, max_outputs=10, step=train_id)
print("Epoch: {} ///// Step: {}/{} ===========================> Loss: {} ".format(epoch, train_id, train_end_id, loss_values))
save_path = manager.save()
print("Saved checkpoint for epoch {}: {}".format(epoch, save_path))
print("loss : {}".format(loss_values.numpy()))
Два следующих вопроса: 1. Как сохранить эту модель? 2. Как я могу загрузить эту модель позже?
Моя модель является типом модели с автоматическим кодированием, поэтому необходимо создать восстановленную модель для сравнения и просмотра ошибок.