C++ 神经网络图像分类,最有效的解决方案/建议

C++ 神经网络图像分类,最有效的解决方案/建议,c++,opencv,cuda,theano,C++,Opencv,Cuda,Theano,我已经在Matlab中使用梯度下降和反向传播算法构建了一个深度神经网络图像分类器程序(为每个示例提供1个输出,例如它是否是一辆汽车)。它是一个简单的前馈网络,具有1或2个隐藏层。在NVCC C++中,使用所获得的权值进行实时目标检测。 NN训练结果具有相当好的准确性(超过99.9%,但还不够),可以处理超过100000个大小为32x32的图像文件。但Matlab代码唯一的问题是:每次训练都会出现局部极小值,所以需要很多不同的训练,但训练速度相当慢 除了缓慢运行的Matlab NN训练代码外,我还

我已经在Matlab中使用梯度下降和反向传播算法构建了一个深度神经网络图像分类器程序(为每个示例提供1个输出,例如它是否是一辆汽车)。它是一个简单的前馈网络,具有1或2个隐藏层。在NVCC C++中,使用所获得的权值进行实时目标检测。 NN训练结果具有相当好的准确性(超过99.9%,但还不够),可以处理超过100000个大小为32x32的图像文件。但Matlab代码唯一的问题是:每次训练都会出现局部极小值,所以需要很多不同的训练,但训练速度相当慢

除了缓慢运行的Matlab NN训练代码外,我还尝试过:

1) OpenCV 3.0.0,目前它“可能”有一个in-virtual float cv::ml::StatModel::predict函数。所以我不能正确地使用它

2) 试过了,但在装载和训练过程中它甚至会卡住。我还在努力解决这个问题

3,但只能找到C++编写的“一”教程代码。如果没有例子,我可能需要很长时间才能掌握它

4) 几个月前,我在Python中试用了Theano,它是可定制的,并且有很多教程。但从未尝试过用它训练图像文件

5)还可以将MATLAB代码转换为NVCC C++,并尝试共轭梯度法进一步加速。但我还没试过,这是我最后的选择


掌握每一条道路可能需要相当长的时间,我还有很多不同的工作要做。我该走哪条路,或者你还有别的建议吗?谢谢你

如果你有使用Matlab的经验,最简单的方法是通过“VGG卷积神经网络实用”并使用他们的开放源码MatConvNet工具箱for Matlab:。

如果有人知道什么是最好的方法,他可能会很富有和出名。也许试着读一些科学论文,选择最适合你的方法?据我所知,最先进的成果是由neocognitrons通过一些复杂的训练技术取得的。我可能把我的问题表达得有点错误。我正在寻找一个nn培训计划,它能够在培训期间有效地处理许多图像文件。谢谢,Mikael Rousson给了我一个很好的建议。