Windows10+VS2013+caffe+Python2.7+CUDA8.0 部署配置

所需环境工具:


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:ProgramDataAnaconda2Scripts路径下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:Softwarecuda</CuDnnPath>  
第48行 <PythonDir>C:ProgramDataAnaconda2</PythonDir> 


配置完成之后编译Caffe解决方案,完成之后在 D:SoftwareCaffecaffe-masterBuildx64Releasepycaffe 编译路径下生成caffe文件夹:



拷贝caffe文件夹到Anaconda的安装路径: C:ProgramDataAnaconda2Libsite-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文件:


训练完成:



原文地址:https://www.cnblogs.com/mtcnn/p/9411853.html