用Python训练神经网络并以C ++进行部署

时间:2018-08-28 08:54:04

标签: c++ opencv tensorflow neural-network keras

我打开此线程来讨论如何将我的NN模型带到部署中。

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

经过几个小时的研究,我计划执行以下操作

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

  2. 从Keras模型获取张量流会话,这里有一个示例here。比* .pd文件中的Save the session

  3. openCV dnn模型中加载NN模型。有一个特定的功能可以做到这一点

    cv::readNet()
    
  4. 使用

    的OpenCV在C ++中运行NN
    net.setInput(blob);
    Mat prob = net.forward();
    

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

1 个答案:

答案 0 :(得分:0)

也许看看这个问题:Convert Keras model to C++

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