caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法

:15:51.840047 10788 math_functions.cu:375] Check failed: status == CURAND_STATUS_SUCCESS (201 vs. 0) CURAND_STATUS_LAUNCH_FAILURE
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第1张图片
在网上查找时,说是因为CUDA7.5对win10系统有些不完善,自己准备尝试一下重新做,还有的说是NVIDIA官网上说是因为执行随机数生成函数时候,内核启动失败。参考的网址如下:
http://www.caffecn.cn/?/question/611
http://www.caffecn.cn/?/question/740
重现安装CUDA8.0的过程
环境:CUDA8.0.44 CUDNN5.1 win10 x64 python2.7 VS2013
下载并安装这个CUDA8.0.44+CUDNN5.1 ,这里就不介绍了,电脑里已经提前装过VS2013和VS2015,
然后用VS2013打开caffe.sln进行编译,出现了错误error MSB4062,错误的解决办法参照下面的网址进行解决即可。
https://blog.csdn.net/u013277656/article/details/75040459
注意:16个项目全部都要执行“卸载项目”+“编辑”+“重新加载项目”。
然后就按照这个网址上面的步骤继续执行操作即可。
https://blog.csdn.net/nk_wavelet/article/details/78935511
先进行mnist数据集的测试,然后测试自己的数据。
过程为:(1)下载数据,放到对应的文件夹下,这里仅显示test数据,train数据也再相应的位置处。
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第2张图片
(2)编辑create_mnist.bat,放到caffe的根目录下,
.\Build\x64\Release\convert_mnist_data.exe –backend=lmdb .\data\mnist\mnist_train_lmdb\train-images.idx3-ubyte .\data\mnist\mnist_train_lmdb\train-labels.idx1-ubyte .\examples\mnist\mnist_train_lmdb
echo.
.\Build\x64\Release\convert_mnist_data.exe –backend=lmdb .\data\mnist\mnist_test_lmdb\t10k-images.idx3-ubyte .\data\mnist\mnist_test_lmdb\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmdb
pause
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第3张图片
3(双击create_mnist.bat,产生lmdb文件,caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第4张图片
4修改这两个文件caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第5张图片
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第6张图片
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第7张图片
5.再根目录下创建train_mnist.bat,内容是
.\Build\x64\Release\caffe.exe train –solver=.\examples\mnist\lenet_solver.prototxt
Pause
6.双击运行,则可得到训练结果和模型。
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第8张图片
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第9张图片
但是这个过程中未使用均值文件,以及利用训练好的文件去进行测试。接下来先利用训练好的模型进行测试,首先要创建一个deploy.prototxt文件,可以参照一下这个网址:
https://blog.csdn.net/c406495762/article/details/70446385
网上有说可以直接用lenet.prototxt,他们几乎是一样的,https://blog.csdn.net/sevenddddddd/article/details/78787638
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第10张图片
7.生成均值文件,.\Build\x64\Release\compute_image_mean.exe .\examples\mnist\mnist_train_lmdb .\examples\mnist\mean.binaryprotocaffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第11张图片
8.也生成了label.txt,至于图片我就是从网上下载的,但是再编译 classification.cpp的时候出现错误了,
这里写图片描述
我的解决办法是又重新生成一次libcaffe,然后又重现生成classfication.
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第12张图片
但是编译生成后的文件只有2个 ,其他的又4个,我不知道什么原因
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第13张图片
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第14张图片
网上的一种解决方法见下面的网址,我没试,不知道可不可行,
https://blog.csdn.net/liyunlong111/article/details/70435143
9.接下来写test.bat对单张图像进行测试,希望可以测试成功。test.bat的脚本内容为:
.\Build\x64\Release\classification.exe .\examples\mnist\lenet.prototxt .\examples\mnist\lenet_iter_10000.caffemodel .\examples\mnist\mean.binaryproto .\examples\mnist\label.txt .\examples\images\8.jpg
Pause
结果为:
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第15张图片
参考的博客为:https://blog.csdn.net/sevenddddddd/article/details/78787638
不太明白这篇博客里第五步的测试集的分批正确率,感兴趣的可以试一试。
https://blog.csdn.net/zb1165048017/article/details/52217772
接着想用刚才的模型进行其他图片的测试,但是行不通。
接下来将利用自己的数据进行试验。
1.由下图的这个文件将test.txt和train.txt生成lmdb文件数据,
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第16张图片
2.生成均值文件,mean.binaryproto
3.由lmdb文件开始训练模型,其中的train.prototxt test.prototxt solver.prototxt 三个文件都用原来编辑好的。
4.开始训练时出现错误,caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第17张图片
然后又开始苦苦寻找解决办法,但是在CPU的情况下就不会错。同时还使用了.sh脚本,但是也行不通
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第18张图片
看了一下前面的问题,应该属于内存溢出的情况。解决方法:只要将train.prototxt test.prototxt 的bitchsize 大小更改一下即可。
在训练模型过程中,当bitchsize的值越小,生成模型的时间越短,并且还会影响accuracy的值,精度低。这是bitchsize为20
caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第19张图片
当bitchsize为50,其训练结果为:caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法_第20张图片
训练的时间不仅长了,而且精度也降低了一些,说明选取合适的bitchsize值很重要。
至于使用训练好的模型进行图片分类测试,在下篇阐述。

你可能感兴趣的:(caffe+CUDA7.5+CUDNN+win10进行训练时出现math_functions.cu:375错误的解决方法)