![](/img/trans.png)
[英]How to load a tensorflow keras model saved with saved_model to use the predict function?
[英]How to periodically save tensorflow model using saved_model API?
因此出于各种原因(例如其语言独立性),我想使用tensorflow的saved_model API来保存/加载模型。 在培训结束时,可以通过调用builder.add_meta_graph_and_variables()
来保存所有内容(并成功还原),但是我看不到任何定期保存的方法。 Tensorflow上的文档非常稀疏,它们提供的模板代码( 在此处 )对我没有帮助:
...
builder = tf.saved_model.builder.SavedModelBuilder(export_dir)
with tf.Session(graph=tf.Graph()) as sess:
...
builder.add_meta_graph_and_variables(sess,
["foo-tag"],
signature_def_map=foo_signatures,
assets_collection=foo_assets)
...
with tf.Session(graph=tf.Graph()) as sess:
...
builder.add_meta_graph(["bar-tag", "baz-tag"])
...
builder.save()
调用builder.save()
不会将新变量保存到模型中。 它只是更新了模型protobuf。
我想念什么? 在第n个纪元后,如何使用saved_model
?
好吧,在这里和其他地方浏览过tensorflow代码后,答案似乎是“您不能”。 SavedModelBuilder
实际上仅是为训练阶段之外的模型设计的,它使您可以添加元图并选择要加载/保存的变量集(即TRAINING vs. SERVING),仅此而已。 例如, SavedModelBuilder.add_meta_graph_and_variables
只能被调用一次,并且没有SavedModelBuilder.update_variables
或类似的东西。 另一方面,在训练时,您需要使用Saver
类并保存检查点和那些关联的文件。 为什么没有一个统一的系统,我不知道,但是显然就是这样。
调用builder.add_meta_graph_and_variables()
时将保存变量,因为在其中调用了saver.save()
。 看这里
解:
只需在builder.save()
之前调用saver.save(sess, export_dir+'/variables/variables', write_meta_graph=False, write_state=False)
builder.save()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.