【问题标题】:Tensorflow - Deep MNIST Tutorial - Export classifier to C++Tensorflow - 深度 MNIST 教程 - 将分类器导出到 C++
【发布时间】:2017-08-15 21:05:19
【问题描述】:
我获得了训练有素的“深度 MNIST 教程”NN,并且我知道如何使用 TensorFlow Python API 测试模型。现在我想将分类器导出到 C++,这样我就可以在没有 TensorFlow API 的情况下使用它。
我知道经过训练的模型拓扑、权重和激活函数。有这个实现的例子吗?我搜索了它,但找到了如何在 C++ 中创建和训练 NN 而不是分类器示例。
提前致谢。
【问题讨论】:
标签:
python
c++
tensorflow
classification
【解决方案1】:
也许以下 Tensorflow 教程中的代码可以提供帮助?
TensorFlow C++ Image Recognition Demo
本教程代码使用 C++ 编写,无需安装 Tensorflow 即可运行。
但一个限制是它使用导出为“冻结的 protobuf”.pb 文件的模型。您可以按照页面所述下载 inception V3 预训练模型,或冻结您自己的模型来制作一个。
如果您已经将模型/变量保存到检查点,以下代码将有助于冻结您的图表:
freeze_graph.py
或者您可以在训练结束后添加以下代码以获取冻结模型文件为my_model.pb:
#...some sess.run loop for training
output_graph_def = sess.graph_def
output_graph_def = graph_util.convert_variables_to_constants(
sess, sess.graph_def, ['some_tensor_names_for_output'])
output_graph_def = remove_training_nodes(output_graph_def)
with open('my_model.pb', 'wb') as f:
f.write(output_graph_def.SerializeToString())