要将训练有素的网络导入C++,您需要导出网络才能执行此操作.经过大量搜索并几乎找不到有关它的信息后,我们明白应该使用freeze_graph()来做到这一点.
感谢Tensorflow的新0.7版本,他们添加了它的文档.
在查看文档之后,我发现几乎没有类似的方法,你能说出freeze_graph()和之间有什么区别:
tf.train.export_meta_graph因为它有类似的参数,但它似乎也可以用于将模型导入C++(我只是猜测区别是对于使用此方法输出的文件,您只能使用import_graph_def()或其他东西?)
还包括如何使用一个问题write_graph():在相关文件中体现graph_def由下式给出sess.graph_def,但例子freeze_graph()是sess.graph.as_graph_def().这两者有什么区别?
这个问题与这个问题有关.
谢谢!
我训练模型并使用以下方法保存:
saver = tf.train.Saver()
saver.save(session, './my_model_name')
Run Code Online (Sandbox Code Playgroud)
除了检查点文件,它只包含指向模型最新检查点的指针,这将在当前路径中创建以下3个文件:
我想知道每个文件包含什么.
我想在C++中加载这个模型并运行推理.该label_image示例加载从单一的模型.bp使用文件ReadBinaryProto().我想知道如何从这3个文件中加载它.以下是什么C++等价物?
new_saver = tf.train.import_meta_graph('./my_model_name.meta')
new_saver.restore(session, './my_model_name')
Run Code Online (Sandbox Code Playgroud) c++ artificial-intelligence deep-learning tensorflow tensorflow-serving