如何使用saved_model API定期保存tensorflow模型?

2024-02-23

所以出于各种原因(例如它的语言独立性)我想使用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(使用前将#替换为@)

如何使用saved_model API定期保存tensorflow模型? 的相关文章

随机推荐