将 Keras 模型转换为 C

新手上路,请多包涵

我正在使用 Keras(和 Theano)来训练我的 CNN 模型。有谁知道如何在我的 C++ 应用程序中使用它?有没有人尝试过类似的东西?我有想法编写一些 python 代码来生成带有网络函数的 c++ 代码 - 有什么建议吗?

我在 这里 找到了一个类似的问题,如何在 C++ 中使用 Tensorflow Keras 模型,但没有答案。

原文由 pplonski 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

为了回答我自己的问题并找到解决方案 - 我编写了一个名为 keras2cpp 的普通 c++ 解决方案(其代码可在 github 上找到)。

在此解决方案中,您存储网络架构(以 json 格式)和权重(以 hdf5 格式)。然后,您可以使用提供的脚本将网络转储到纯文本文件。您可以在纯 C++ 代码中将获得的文本文件与网络一起使用。不依赖于 python 库或 hdf5。它应该适用于 theano 和 tensorflow 后端。

原文由 pplonski 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以试试这个 https://github.com/gosha20777/keras2cpp

Keras2cpp 是一个小型库,用于从 C++ 应用程序运行经过训练的 Keras 模型,无需任何依赖。

支持的 Keras 层: - Dense - Convolution1D - Convolution2D - Convolution3D - Flatten - ELU - Activation - MaxPooling2D - Embedding - LocallyConnected1D - LocallyConnected2D - LSTM - GRU - CNN - BatchNormalization

支持的激活:-线性-relu-softplus-tanh-sigmoid-hard_sigmoid-elu-softsign-softmax

设计目标:

  • 与 Keras 使用 TensorFlow 后端生成的网络兼容。
  • 仅限 CPU。
  • 没有外部依赖,标准库,C++17。
  • 模型存储在内存中。

原文由 Georgy Perevozchikov 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题