【发布时间】: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 模型进行推理?
【问题讨论】:
-
查找 tensorflow/python/C-inegration 的示例并从中学习。
-
没有
C/C++这样的语言。选择一个或清楚地解决与您的问题有关的差异。 -
据此 (github.com/tensorflow/tensorflow/issues/8033) 在这种情况下使用 C API 更容易,所以我猜代码也将在 C 中。
标签: c tensorflow machine-learning neural-network deep-learning