用 Python 训练神经网络并在 C++ 中部署

Training a Neural Network in Python and deploying in C++

本文关键字:C++ 部署 神经网络 Python      更新时间:2023-10-16

我打开这个线程来讨论如何将我的 NN 模型引入部署。

我用mdCNN在Matlab中构建并训练了一个NN,(mdCNN是一个简单的Matlab库,用于为多维输入构建NN,目前Matlab - cov3x3x3不支持(。我在 Matlab 中训练了我的模型,现在我想把它投入生产。

经过几个小时的研究,我计划做以下事情

  1. 使用 TF 后端在 Keras 中训练 NN 模型。我选择 Keras 是因为我希望将来与 Matlab 向后兼容。

  2. 从 Keras 模型中获取一个张量流会话,这里有一个示例如何做到这一点。比将会话保存在 *.pd 文件中

  3. 从 openCV DNN 模型加载 NN 模型。 有一个特定的函数可以做到这一点

    cv::readNet()
    
  4. 使用
  5. OpenCV 在 C++ 中运行 NN,使用

    net.setInput(blob);
    Mat prob = net.forward();
    

我想和你一起检查这个流程是否真的有效。有什么建议可以更好地进行部署吗?对流程有什么建议或改进吗?

也许看看这个问题: 将 Keras 模型转换为 C++

一般的想法是将模型保存在 json 中,权重保存在 hdf5 中,并使用此 keras2cpp 解决方案将其转换为 C++。