【Caffe-GPU】Caffe+Python3+CUDA8+CUDNN5+win10+VS2015+Mnist 配置

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值