【发布时间】:2019-02-02 20:22:06
【问题描述】:
我打开此主题讨论如何将我的 NN 模型用于部署。
我使用 mdCNN 在 Matlab 中构建和训练了一个 NN,(mdCNN 是一个简单的 Matlab 库,用于构建多维输入的 NN,目前 Matlab 不支持 - cov3x3x3)。我在 Matlab 中训练了我的模型,现在我想将它投入生产。
经过几个小时的研究,我打算做以下事情
使用 TF 后端在 Keras 中训练一个 NN 模型。我选择 Keras 是因为我希望将来能够向后兼容 Matlab。
从 Keras 模型中获取一个 tensorflow 会话,有一个示例如何做到这一点here。比 *.pd 文件中的Save the session
-
从openCV dnn 模型加载神经网络模型。有一个特定的功能可以做到这一点
cv::readNet() -
使用带有 OpenCV 的 C++ 运行 NN
net.setInput(blob); Mat prob = net.forward();
我想和你确认一下这个流程是否真的有效。有什么建议可以更好地进行部署吗?对流程有什么建议或改进吗?
【问题讨论】:
-
你看过Tensorflow Lite吗?我不知道您的最终部署是否是嵌入式的(raspi、ios 和 andorid),但 TFlite 是用 c++ 编写的。
-
谢谢,我不认为这是我需要的,Tensorflow lite 是为移动设备设计的
-
您的流程应该可以工作,但您必须确保新图像的预处理在数值上与您在训练期间使用的相同。我建议编写一些单元测试和网络/输入示例来证明这一点。
标签: c++ opencv tensorflow neural-network keras