使用 protobuf 文件和 Tensorflow C API 将 Keras 模型转换为 C++

数据挖掘 机器学习 喀拉斯 张量流
2022-02-20 05:02:18

我需要将 Keras 模型转换为 C++ 代码。我找到了一些实现:keras2cpp,另一个keras2cppfrugalydeep只有第三个能够将我的模型转换为 cpp 代码。但是 frugalydeep 不支持 GPU。因此,我正在寻找另一种选择来做到这一点。我的想法是将 Keras 模型保存到.pb(protobuf)文件中,然后使用 Tensorflow C API 加载这个模型。

你认为这可能吗?否则我将不得不手动将 Keras 模型重写为 Tensorflow C API。

还有其他方法可以完成此任务吗?

1个回答

我的想法是将 Keras 模型保存到 .pb(protobuf) 文件,然后使用 Tensorflow C API 加载这个模型。

你认为这可能吗?

答案是肯定的。有很多方法可以做到这一点,我会在这里列出一些,以便您可以选择适合您需求的套件。

  • 您可以使用cppflow,它是 tensorflow C API 的 c++ 包装器,实际上比直接使用 C API 更容易完成这项工作。他们也有一些关于如何使用它的例子,事实上我认为这是最好的解决方案。
  • 你可以看到这个很棒的 repo hello_tf_c_api,尤其是这个例子

或者,如果您想直接使用 c API,可以在 medium 上关注这些文章:

还有这两个很棒的 github gists 可以指导您如何准确地做到这一点(尽管我推荐使用 c 方法,因为它更简单):