Windows 下 caffe 安装详解(cpu+gpu+matcaffe+pycaffe)
需要准备的文件:
1,VS2013,这个不再赘述
2,Windows 版的 caffe,BVLC 官方链接为 https://github.com/BVLC/caffe/tree/windows
安装过程:
1,将下载的 caffe-windows.zip 进行解压,并进入其根目录下的 windows 目录,(eg:E:\caffe\windows)。
将该目录下的 CommonSettings.props.example 复制一个并改名为 CommonSettings.props,同样还是放
在当前目录下。
2,点击打开该 CommonSettings.props,这里由于本人的需要,对 matcaffe,和 pycaffe 都进行了安装,
实际操作的童鞋可以根据自己的需要进行选择。(要安装 matcaffe 必须首先安装 matlab,安装步骤不在
赘述,要安装 pycaffe 需要首先安装 Python,可以参考该链接
http://blog.csdn.net/qq_14845119/article/details/52354394)相应的修改如下所示。其中,左面为原始的
CommonSettings.props.example,右面为需要修改的 CommonSettings.props。
cpu 模式的配置:
gpu 模式的配置:
注意,CudaVersion 修改为自己电脑的 cuda 版本(本人电脑的 cuda 为 7.5 版本,因此不做修改)。
同时注意,由于 GPU 库除了使用 cublas 等 cuda 库之外,还用到了 cudnn,默认安装驱动是不安装这个
的,因此,需要去官网 https://developer.nvidia.com/cudnn 下载(需要注册)。下载完成后,进行解压,
将相应的 bin,include,lib 分别放于自己的 cuda 下面的相应目录中,例如,本人电脑的 cuda 目录为
C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v7.5,因此,将刚才解压的文件放在这个目录下
面的 bin,include,lib 文件夹下。
3,点击 E:\caffe\windows 该目录下的 Caffe.sln 用 VS2013 打开。这里由于别的模块用到了 libcaffe,所
以,首先选择 libcaffe,右键生成。成功之后,再选择整个解决方案,右键生成解决方案。
其中会出现 3 个问题
(1)Nuget 会提示下载一些东西,包括
boost,opencv2.4.10,gflags,glog,hdf5,lmdb,LevelDB,OpenBLAS,protobuf 等预编译的依赖包。过程有点慢,
多等会就 ok。下载完成后会在 caffe 的同级目录生成 NugetPackages 的文件。
(2)出现没有生成 object 文件的错误,双击该错误,点击确定,然后保存即可。
(3)出现无法打开 libcaffe.lib 的错误,编译生成 libcaffe,再编译整个解决方案。
(4),右键解决方案->属性->通用属性->启动项目->当前选定内容,然后保存。
点击 caffe->caffe.cpp,按 F5 运行,生成如下界面,证明安装成功。同时在根目录下面会生成相应的 exe,
lib,dll 等文件。
plus:在上面的工作完成之后,可以考虑将 NugetPackages 根目录下的 glog,LevelDB,protobuf 目录中
lib 下面的 debug 目录中相应的 lib 后面都加上 D 重命名一下,这样在实际工程调试还是部署都不会有 debug
和 release 的 lib 重名的现象。还是很有用的。当然这一步可以不做,根据自己需要。
到目前为止 caffe 就都安装好了,进入测试环节,
mnist 测试:
下面通过一个一个最简单的网络结构 lenet 来对刚才安装的 caffe 进行测试。
(1)去官网 http://yann.lecun.com/exdb/mnist/下载 mnist 数据集。下载后解压到 E:\caffe\data\mnist,如
下图所示。
(2)在 caffe 根目录下,新建一个 create_mnist.bat,里面写入如下的脚本。
[plain] view plain copy
1. .\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_train_lmdb\train-images.idx3
-ubyte .\data\mnist\mnist_train_lmdb\train-labels.idx1-ubyte .\examples\mnist\mnist_train_
lmdb
2. echo.
3. .\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_test_lmdb\t10k-images.idx3-u
.\data\mnist\mnist_test_lmdb\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmd
byte
b
4. pause
然后双击该脚本运行,即可在 E:\caffe\examples\mnist 下面生成相应的 lmdb 数据文件。
(3)修改 E:\caffe\examples\mnist\lenet_solver.prototxt,将最后一行改为 solver_mode:CPU,
修改 E:\caffe\examples\mnist\lenet_train_test.prototxt,如下所示,左面为原始的,右面为修改后的。
(4)在 caffe 根目录下,新建 train_mnist.bat,然后输入如下的脚本,
[plain] view plain copy
1. .\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt
2. pause
然后双击运行,就会开始训练,训练完毕后会得到相应的准确率和损失率。
plus:
c++实现的,将 mnist 数据集转化为图片格式,请戳鄙人拙作,
http://blog.csdn.net/qq_14845119/article/details/54895200
c++实现的,利用 LeNet 识别鼠标手写的字符,请戳鄙人拙作,
http://blog.csdn.net/qq_14845119/article/details/54910358