所需环境工具:
1. Windows 10
2. VS2013
3. Windows版本的caffe工具包,地址:https://github.com/Microsoft/caffe
4. Anaconda2-4.4.0-Windows安装包,地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
5. CUDA8.0,地址:https://developer.nvidia.com/cuda-downloads
6. cuDNN ,地址:https://developer.nvidia.com/rdp/cudnn-download
1. python安装
python下的caffe依赖的第三方库比较多,一个一个下载比较费力,最好使用anaconda安装各个库,包括python,anadonda安装完成之后会自动添加环境变量,Anaconda安装过程:
安装完成之后在控制台输入 conda list 查看已按照的第三方库,以下是部分列表:
在C:\ProgramData\Anaconda2\Scripts路径下spyder.exe文件,是anaconda自带的python编译器,可以把它拖到桌面上备用。
2. CUDA安装
CUDA是NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题,选择下载CUDA8.0
for Windows:
双击下载的安装包开始安装,系统检查并同意许可协议之后在“选项”里最好选择“自定义”,防止精简安装漏装部分功能:
CUDA安装完成之后还需要安装cuDNN。 cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。cuDNN可以集成到更高级别的机器学习框架中,如加州大学伯克利分校的流行CAFFE软件。简单的,插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是调整性能,同时还可以在GPU上实现高性能现代并行计算。
目前caffe支持的cuDNN版本是V4和V5,所以选择其中有一个版本下载,不要选V6。
cuDNN解压出来是这3个文件:
分别把这3个文件放到CUDA安装路径下的bin,include,lib目录下,并且在下一步的CommonSettings.props文件中配置CuDnnPath的值为cuDNN的解压路径。
3. 配置python和GPU支持环境并编译
打开CommonSettings.props,做如下修改:
第7行 <CpuOnlyBuild>false</CpuOnlyBuild>
第8行 <UseCuDNN>true</UseCuDNN>
第9行 <CudaVersion>8.0</CudaVersion>
第13行 <PythonSupport>true</PythonSupport>
第24行 <CuDnnPath>D:\Software\cuda</CuDnnPath>
第48行 <PythonDir>C:\ProgramData\Anaconda2\</PythonDir>
配置完成之后编译Caffe解决方案,完成之后在 D:\Software\Caffe\caffe-master\Build\x64\Release\pycaffe 编译路径下生成caffe文件夹:
拷贝caffe文件夹到Anaconda的安装路径: C:\ProgramData\Anaconda2\Lib\site-packages ,patyon的配置就完成了。
之后在控制台的python环境下输入 import caffe,会出现一个错误提示,没有google.protobuf模块:
ImportError: No module named google.protobuf
一个解决方法是在Anaconda的安装路径下打开cmd命令,输入 pip install protobuf 进行安装,会自动联网下载最新protobuf模块,之后完成安装:
另一个解决方法是事先下载好protobuf模块,安装包下载地址: https://pypi.python.org/pypi/protobuf ,下载完之后拷贝到anaconda的安装路径下,并打开cmd,输入 pip install +安装包的完整名称 就可以进行安装。
完成之后在python环境下输入 import caffe,如果没有报错出来,说明python已经正确配置caffe:
4. python+caffe训练MNIST数据集测试
1. 修改 lenet_solver.prototxt 文件
第2行 net: "D:/Software/Caffe/caffe-master/examples/mnist/lenet_train_test.prototxt"
第23行:snapshot_prefix: "D:/Software/Caffe/caffe-master/examples/mnist/lenet"
第25行 solver_mode: GPU
2. 修改 lenet_train_test.prototxt 文件
第14行 source: "D:/Software/Caffe/caffe-master/examples/mnist/mnist_train_lmdb"
第31行 source: "D:/Software/Caffe/caffe-master/examples/mnist/mnist_test_lmdb"
确保mnist_train_lmdb和mnist_test_lmdb文件夹下放入了db数据。
3. 在python环境下,依次输入以下内容:
import caffe
caffe.set_mode_gpu()
solver = caffe.SGDSolver('D:/Software/Caffe/caffe-master/examples/mnist/lenet_solver.prototxt')
solver.solve()
读入prototxt文件:
训练完成: