【问题标题】:How can I do the inference for a trained neural network using C/C++?如何使用 C/C++ 对经过训练的神经网络进行推理?
【发布时间】:2019-04-12 12:47:16
【问题描述】:

对于我的硕士论文,我将不得不使用预先构建/预先训练(使用 TensorFlow)的深度神经网络模型进行推理。我收到了两种不同的格式(hdf5 / h5 和冻结图 = .pb)。推理应在集群上完成,到目前为止,我们只有一个 GPU 版本(带有 TensorRT 和一个 uff 模型)在运行。所以我的第一项工作似乎是在集群上使用之前先在一个 CPU 上进行推理。

我们在计算流体动力学 (CFD) 模拟中使用该模型——这也是我的学术背景,因此您可以想象我对深度学习只有一点了解。无论如何,更改/训练模型不是我的工作,而只是将其用于推理。我们的 CFD 代码是用 C++ 编写的,这是我在高级级别上使用的唯一编程语言(显然使用 C 没有问题,但我不知道 python)。

经过多次 Google 搜索后,我意识到我并没有真正的想法如何开始。我认为可以跳过所有的训练和 TensorFlow 的东西。我知道神经网络是如何工作的,以及它们如何根据输入值计算输出值。我也有最重要的理论知识,但没有这方面的编程知识。是否有可能使用他们给我的模型(所以无论是 hdf5/h5 还是冻结图)并只使用 C 或 C++ 构建推理代码?我已经找到了 C API 并将其安装在 docker 容器中(我也有 Tensorflow),但我真的不确定下一步是什么。我可以用 C API 做什么?您将如何编写 C/C++ 代码以使用准备推理的 DNN 模型进行推理?

【问题讨论】:

标签: c tensorflow machine-learning neural-network deep-learning


【解决方案1】:

Opencv 提供了运行深度学习模型的工具,但它们仅限于计算机视觉领域。见here

您可以使用opencv提供的API进行分类、物体检测、人脸检测、文本检测、分割等。这些例子相当简单。

有python版本和c++版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 2019-10-20
    • 2010-11-20
    • 2019-09-15
    • 1970-01-01
    相关资源
    最近更新 更多