如何使用 tensorflow 在 C++ 中训练模型?

Posted

技术标签:

【中文标题】如何使用 tensorflow 在 C++ 中训练模型?【英文标题】:How to train a model in C++ with tensorflow? 【发布时间】:2016-05-27 04:25:05 【问题描述】:

我尝试用深度学习模型训练一个实验。 我发现 tensorflow 是最好的方法。 但是存在需要用python编写tensorflow的问题。 而且我的程序包含很多循环。像这样..

for i=1~2000
 for j=1~2000

我知道这对 python 来说是一个很大的缺点。 它比c慢得多。 我知道 tensorfow 有一个 C++ API,但不清楚。 https://www.tensorflow.org/api_docs/cc/index.html (这是我看过的最差的规格) 有人可以给我一个简单的例子吗? 我只需要两个简单的代码。 一是如何创建图表。 另一个是如何加载这个图并运行它。 我真的很需要这个。希望有人可以帮助我。

【问题讨论】:

在 TensorFlow 中运行计算与在 python 中执行计算不同,即使您是从 python 调用 TensorFlow。您构建图表,然后执行它。但执行发生在 TensorFlow 本身,速度非常快。除了作为“胶水”代码之外,它不使用解释的 python。 我明白你的意思。深度模型代码足够快。但是我还有另一个代码必须在许多循环中编写。(强化学习)。它是一个递归函数。 我明白了。希望 C++ 对你有用。如果归结为必须使用 python API,作为最后的手段,也许可以使用 cython 来加速。 【参考方案1】:

这不是那么容易,但它是可能的。 首先,您需要在 python 中创建张量流图并将其保存在文件中。 本文可能对您有所帮助https://medium.com/jim-fleming/loading-a-tensorflow-graph-with-the-c-api-4caaff88463f#.krslipabt

其次,您需要编译 libtensorflow,将其链接到您的程序(您还需要 tensorflow 标头,因此有点棘手)并从文件中加载图形。 这次这篇文章或许能帮到你https://medium.com/jim-fleming/loading-tensorflow-graphs-via-host-languages-be10fd81876f#.p9s69rn7u

【讨论】:

以上是关于如何使用 tensorflow 在 C++ 中训练模型?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中保存和恢复 TensorFlow 图及其状态?

将在 tensorflow 中训练的神经网络部署到 Torch C++ 的最佳方法是啥?

如何在 C++ 代码中运行 Yolov5 tensorflow model.pb?

如何在 TensorFlow 1.4 中使用提前停止来训练深度神经网络?

如何在 iOS 中使用经过 Tensorflow 训练的机器学习模型

如何在 Tensorflow 对象检测 api 中评估预训练模型