一、准备(暂时不考虑Python和Matlab接口)
系统:Win10
显卡:GTX1060
1、下载安装VS2013
2、安装CUDA(这里为cuda_9.2.148_win10),可以通过NVIDA控制面板->帮助->系统信息->组建下的NVCUDA.DLL信息判断显卡支持的CUDA最高版本
3、下载并解压CUDNN(这里为cudnn-9.2-windows10-x64-v7.5.0.56,注意CUDNN与CUDA的版本要对应);
4、下载解压caffe-master
二、Caffe的编译
1、进入“caffe-master/windows”目录下,找到“CommonSettings.props.example”文件(注意要勾选上文件夹中的“查看->显示扩展名”才能看到.example),将其拷贝并修改为“CommonSettings.props”。
2、打开“CommonSettings.props”文件,修改以下内容:
4、利用VS2013打开名称为Caffe的解决方案 。
5、编译libcaffe项目,右击libcaffe,选择生成:
6、编译过程中会下载第三方库(还原NuGet包),速度比较慢,这个过程中VS2013可能会出现“未响应”,需耐心等待。下载完成后会在与caffe-master同位置出生成一个NugetPackages文件夹,其中包含下载的各种依赖包:
7、在编译的过程中可能出现的错误
(1)错误 63 error MSB4062: 未能从程序集 F:\caffe\NugetPackages\OpenCV.2.4.10\......的解决办法,解决方法:以管理员身份重新打开VS2013;
(2)错误 error C2220: 警告被视为错误 - 没有生成“object”文件 ,解决方法:将libcaffe属性页中的C/C++->常规下的“将警告视为错误”修改为“否”:
(3)error : too few arguments in function call,是CUDA版本太高的原因,解决方法:双击该错误,打开所在文件“cudnn.hpp”,修改内容:
(注释掉的为原内容,#if...#else...#endif为新内容)
(4)。。。
三、训练MNIST
1、编译项目Caffe,在“F:\caffe\caffe-master\Build\x64\Debug”下会生成一个caffe.exe程序
2、编译项目convert_mnist_data项目,在“F:\caffe\caffe-master\Build\x64\Debug”下会生成一个convert_mnist_data.exe程序
3、下载解压MNIST数据集
4、使用convert_mnist_data.exe程序将下载的数据集文件转换为lmdb格式或leveldb格式。
格式为(lmdb):
Build\x64\Debug\convert_mnist_data.exe --backend=lmdb examples\mnist\mnist_data\train-images.idx3-ubyte examples\mnist\mnist_data\train-labels.idx1-ubyte examples\mnist\mnist_data\mnist_train_lmdb
Build\x64\Debug\convert_mnist_data.exe --backend=lmdb examples\mnist\mnist_data\t10k-images.idx3-ubyte examples\mnist\mnist_data\t10k-labels.idx1-ubyte examples\mnist\mnist_data\mnist_test_lmdb
5、修改“F:\caffe\caffe-master\examples\mnist”下文件“lenet_solver.prototxt”和“lenet_train_test.prototxt”中的路径信息
6、使用caffe.exe执行训练,可以新建一个“train_letnet.bat”文件,内容为:
SET GLOG_logtostderr=1
..\..\Build\x64\Debug\caffe.exe train --solver=.\lenet_solver.prototxt
pause
双击该文件执行训练。