所以出于各种原因(例如它的语言独立性)我想使用tensorflow的保存的模型 https://www.tensorflow.org/programmers_guide/saved_model#apis_to_build_and_load_a_savedmodel用于保存/加载模型的 API。我可以通过调用来保存所有内容(并成功恢复)builder.add_meta_graph_and_variables()
在训练结束时,但我没有看到任何定期保存的方法。关于这方面的 Tensorflow 文档非常稀疏,并且他们提供的模板代码(here https://www.tensorflow.org/api_docs/python/tf/saved_model/builder/SavedModelBuilder)对我没有帮助:
...
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()
Calling builder.save()
不将新变量保存到模型中。它只是更新模型 protobuf。
我缺少什么?例如,我如何保存第 n 个纪元使用saved_model
?
好吧,看完tensorflow代码后here https://github.com/tensorflow/tensorflow/blob/r1.6/tensorflow/python/saved_model/builder_impl.py而在其他地方,答案似乎是“你不能”。SavedModelBuilder
实际上只是为训练阶段之外的模型设计的,它允许您添加元图并选择要加载/保存的变量集(即训练与服务),但仅此而已。SavedModelBuilder.add_meta_graph_and_variables
,例如,只能被调用一次,并且没有SavedModelBuilder.update_variables
或类似的东西。另一方面,在训练时,您需要使用Saver
类并保存检查点和那些关联的文件。我不知道为什么没有一个统一的系统,但显然就是这样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)