1、 安装VS2015
2、 安装CUDA、cudnn
经验证,要想编译gpu版本的caffe,必须按照官方说明安装CUDA8.0和cudnn5 !!!
开始时我电脑上装了好几个版本的CUDA,分别是9.1、9.2、10.0,在这种情况下编译scripts\build_win.cmd时,总是会出现 caffe error MSB6006:"cmd.exe"已退出,代码为1 的错误,后来再安装了一个CUDA8.0和CUDNN5.0,就能够正常编译了。注意,安装完后,要用
nvcc --version 命令查看一下当前cuda是否为8.0,如果不是,编译也不成功,此时重启电脑即可。
3、安装cmake
版本>=3.4,cmake从此处下载 https://cmake.org/download/,
下载cmake-3.13.0-rc3-win64-x64.msi后,点击安装,并将安装目录C:\Program Files\CMake\bin 添加到系统环境变量中,在终端输入
cmake --version
可显示cmake版本
4、安装git
从此处下载 https://www.git-scm.com/downloads ,安装完后将路径添加到系统环境变量中,然后在终端输入
git --version
可显示git版本
5、下载caffe
移动到需要安装caffe的目录,依次执行以下命令,将会出错,需要对build_win.cmd进行修改
git clone https://github.com/BVLC/caffe.git
cd caffe
git checkout windows
scripts\build_win.cmd
6、设置build_win.cmd
修改scripts\build_win.cmd文件,
1)设置Anaconda的安装路径
2)设置WITH_NINJA=0,CPU_ONLY=0,PYTHON_VERSION=3,BUILD_PYTHON=1
3)添加CUDA安装路径,必须安装CUDA8.0
改动的主要有以下几点:
- 根据自己安装的VS版本,修改对应的VS版本号,如VS2015对应VERSION=14
- 将NINJA设为0,这里不需要用到它
- 将CPU_ONLY设为0,因为要用到GPU
- 如果想支持多GPU训练,则将USE_NCCL设为1
- 设置CUDA安装路径
- 将BUILD_PYTHON设为1,只支持python 2.7和3.5 版本,anaconda默认安装的是python3.7版本,因此需要降级,方法为在命令终端输入
conda install python=3.5
https://blog.csdn.net/isyiming/article/details/79225608
https://blog.csdn.net/yuanhuiling/article/details/79768992
7、编译build_win.cmd生成caffe.sln
删除build文件夹,重新执行以下命令
scripts\build_win.cmd
发现还是报错,一个名为 libraries_v140_x64_py35_1.1.0.tar.bz2 的依赖包无法下载成功。可以从我的百度网盘下载 链接 提取码:sx14, 将其放在以下目录 C:\Users\wt\.caffe\dependencies\download
修改完成后继续执行 build_win.cmd ,将开始编译
编译会进行十几分钟,成功后会输出
此时将会在caffe/build路径下生成 Caffe.sln。
8、编译caffe.sln生成caffe.exe
用VS2015打开生成的Caffe.sln,将模式改为 Release x64,然后生成解决方案,生成成功后,显示
此时会在 caffe/build/tools/Release 路径下生成 caffe.exe、convert_imageset.exe等工具,如
9、配置python接口
经过上述步骤,当在python中 import caffe 时,会提示 importError: No moudle named ‘caffe’,
说明python接口还需要配置。
首先,将当前工程中的 caffe/python/caffe 文件夹复制到
C:\ProgramData\Anaconda3\Lib\site-packages 目录,再次 import caffe,还是报错,
于是安装 scikit-image包
conda install --yes scikit-image
再次import caffe,还是报错 importError: No moudle named ‘google’,说明缺失google包,在site-packages中查看确定没有google包,于是要安装该包,方法如下,在终端中移动到python安装目录,然后用pip安装
cd C:\ProgramDate\Anaconda3
pip install protobuf
安装完成后,再次import caffe就不再报错,表明python接口配置成功
实际情况中,可能还会有其他依赖包缺失,根据情况安装即可
https://blog.csdn.net/weixin_37881528/article/details/79038165
10、下载mnist数据集
首先从 http://yann.lecun.com/exdb/mnist/ 下载四个mnist数据集文件,在caffe/examples/mnist路径下建立 mycaffe-mnist-test 文件夹,并将下载的四个文件放到该目录,分别解压得到以下文件
11、转换LMDB文件
利用编译生成的convert_imageset.exe工具将MNIST数据集生成lmdb文件,在mycaffe-mnist-test文件夹下创建convert-mnist-data-train.bat文件,并添加以下内容
..\..\..\Build\examples\mnist\Release\convert_mnist_data.exe --backend=lmdb train-images.idx3-ubyte train-labels.idx1-ubyte mnist_train_lmdb
pause
注意这里convert_mnist_data.exe的路径可能有所不同,通过搜索,它在哪里就填哪个路径。添加完成后,保存,然后双击运行,就会生成训练集的lmdb文件。
同理,创建convert-mnist-data-test.bat文件,并添加以下内容
..\..\..\Build\examples\mnist\Release\convert_mnist_data.exe --backend=lmdb t10k-images.idx3-ubyte t10k-labels.idx1-ubyte mnist_test_lmdb
pause
添加完成后,保存,然后双击运行,就会生成测试集的lmdb文件。
如图所示
12、配置lenet_solver.prototxt文件
在examples/mnist目录下打开lenet_solver.prototxt文件进行配置,由于采用gpu,因此最后一行的solver_mode为GPU,其他无需更改
13、配置lenet_train_test.prototxt文件
在examples/mnist目录下打开文件 lenet_train_test.prototxt 进行配置,指定其中训练集和测试集的lmdb文件路径等参数
14、建立训练脚本
返回到caffe目录,建立一个mnist-run.bat文件并添加以下内容
Build\tools\Release\caffe.exe train --solver=examples\mnist\lenet_solver.prototxt
pause
添加后保存,并双击运行,即可开始进入训练,可以看到训练时用了GPU 0
用GPU进行训练,速度非常快,很快就能完成10000次迭代,训练完成后,将在caffe/examples/mnist 目录下生成训练好的模型文件
https://blog.csdn.net/qxconverse/article/details/76376718
https://blog.csdn.net/kele_imon/article/details/78809784
https://blog.csdn.net/kaychangeek/article/details/79885494
15、caffenet的C++图像分类测试
通过上述步骤编译完成了caffe后,就可以对其c++图像分类的API接口进行测试了。
编译成功后,将在 caffe/build/examples 中生成一个cpp_classification ,这是一个C++的图像分类接口,进入该路径 caffe/build/examples/cpp_classification/Release 目录中,将有个 classification.exe 文件,这就是caffe编译好的可执行文件。
在该目录下建立一个models文件夹,并在该文件夹中放入以下文件
其中:
squeezenet_v1.1.caffemodel :squeezenet在imagenet数据集上训练好的模型文件
deploy.prototxt : squeezenet的网络结构文件
imagenet_mean.binaryproto :imagenet数据集的均值文件
synset_words.txt :imagenet数据集的类别文件,可根据自己的数据集制作
jpg : 测试图片
定位到Release路径,执行以下命令
classification.exe models/deploy.prototxt models/squeezenet_v1.1.caffemodel models/imagenet_mean.binaryproto models/synset_words.txt models/cat.gray.jpg
将输出测试结果
16、caffe生成均值文件
经过上面的步骤,如果正常编译了win版的caffe,将在 build/tools/Release 目录下生成了相关可执行文件,其中compute_image_mean.exe就是计算均值文件的
计算数据集的均值文件,通过以下脚本文件实现
compute_image_mean.exe [lmdbfilepath] [meanfilename]
其中 lmdbfilepath是数据集lmdb文件的上级目录,meanfilename是所要生成的meanfile文件的名称,例如
https://blog.csdn.net/u012958854/article/details/78193551
https://blog.csdn.net/qq_15947787/article/details/78433382