有没有重新训练 SavedModel 的例子?在许多地方,他们声称这是可能的,而不是使用检查点,但没有提供示例。当我尝试执行时,模型的变量保持不变:
...
model_save_path = "test.pb"
with tf.Session(graph=tf.Graph()) as net:
...
for e in range(epochs):
# Train the model
...
builder = saved_model.builder.SavedModelBuilder(model_save_path)
signature = predict_signature_def(inputs={'myInput': X, 'errorInput': Y},
outputs={'myOutput': out, 'errorOutput': mse})
builder.add_meta_graph_and_variables(sess=net,
tags=[tag_constants.TRAINING],
signature_def_map={'predict': signature})
builder.save()
print(error)
上面的代码训练模型,将每个交互存储在模型中并打印相关的错误。该代码有一个错误正在改善的输出:
2773.6885
291.35968
263.40912
255.27612
当我们再次加载它并尝试训练它时,错误保持不变:
...
# Load the model
model_save_path = "test.pb"
loaded = tf.saved_model.load(net, ["train"], model_save_path)
graph = tf.get_default_graph()
...
with tf.Session(graph=tf.Graph()) as net:
...
for e in range(epochs):
# Train the model
...
builder = saved_model.builder.SavedModelBuilder(model_save_path)
signature = predict_signature_def(inputs={'myInput': X, 'errorInput': Y},
outputs={'myOutput': out, 'errorOutput': mse})
builder.add_meta_graph_and_variables(sess=net,
tags=[tag_constants.TRAINING],
signature_def_map={'predict': signature})
builder.save()
print(error)
输出始终是初始训练的错误:
255.27612
255.27612
255.27612
255.27612