写在前面的话:耗时两天,参考N篇博客,踩坑N次,别人有的错误我遇到过,没有的错误我也有,就在马上要放弃的时候,终于…成功了!
环境准备
-
系统环境:windows10
-
cuda10.0:cuda下载地址
https://developer.nvidia.com/cuda-downloads
-
cudnn7.65:cudnn下载地址
https://developer.nvidia.com/rdp/cudnn-download
(需要注册才能下载) -
minconda:python2.7(安装anaconda时记得添加环境变量)
-
visual studio2015(一开始用的是VS2017,各种报错没找到合适的解决办法(可能是vc14的缘故,具体原因还不清楚),放弃,改用2015版本)可点这里下载
-
caffe和必要第三方库:下载地址
https://github.com/happynear/caffe-windows
第三方库在ReadMet中给出了网盘链接https://pan.baidu.com/s/1ZTp8iWszMPrZ718w_UCZ5Q
caffe安装
1. 解压caffe-windows-ms
找到\caffe-windows-ms\windows下的“CommonSettings.props.example”文件,重命名为“CommonSettings.props”,用notepad打开,修改以下几个地方:
- 设置是否使用GPU,cuda版本和是否使用python
7 <CpuOnlyBuild>false</CpuOnlyBuild> #设置是否使用GPU,false是使用GPU,true是使用CPU
8 <UseCuDNN>true</UseCuDNN> #使用GPU设置为true
9 <UseNCCL>true</UseNCCL>
10 <UseMKL>false</UseMKL>
11 <CudaVersion>10.0</CudaVersion> #设置CUDA版本
15 <PythonSupport>true</PythonSupport> #设置使用python
- 添加python的安装目录和cuda的安装目录
42 <CuDnnPath>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0</CuDnnPath> #添加cuda的安装路径
82 <PythonDir>C:\Users\xxx\miniconda2\</PythonDir> #添加python2.7安装路径
2. 解压thirdparty20180525
- 将解压后文件夹下的bins路径
D:\thirdparty20180525\bins
添加到系统变量Path,否则后面编译caffe过程中会出现无法启动xxx.dll - 复制第三方库下的所有文件夹到\caffe-windows-ms\windows\thirdparty文件夹下。
3. 编译caffe
用visual studio15打开\caffe-windows-ms\windows下的Caffe.sln。可能会跳出安装python的相关配置,按照提示安装即可。打开后的界面如下:
- 设置libcaffe为启动项目,编译
编译过程中可能会出现的问题:(1)无法打开libcaffe.lib,解决方法是对libcaffe重新再编译一次;(2) 错误提示”将警告视为错误”,解决方法是依次打开解决方案中的16个项目的属性,把”将警告视为错误”选项改成否。注意16个项目都要改。
- 右键“Caffe.sln解决方案”点击生成解决方案,编译完成之后,在\caffe-windows-ms\Build\x64\Release文件夹下可以看到生成的编译好的文件,在此目录下打开cmd,需要先转到所安装的python2.7环境(我是在minconda中base环境下装的python2.7,因此需要输入activate base),再输入caffe,如果出现以下信息则说明caffe安装成功:
但在实际过程中,我出现了由于找不到cudart64_**dll,无法继续执行代码。重新安装程序可能会解决此问题”的错误,原因是我选择的是cuda10.0版本,所以需要自己编译nccl.dll和nccl.lib具体解决方案: - nccl下载地址
https://github.com/happynear/nccl
- 下载完成之后,用notepad打开\nccl-master\windows\nccl.vcxproj修改75行和188行的cuda版本
75 <Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 10.0.props" />
188 <Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 10.0.targets" />
- 用vs2015打开nccl.sln,会出现一些模块加载失败的情况,我没去理会,直接生成解决方案,好像是失败了,但在\nccl-master\windows\x64\Release文件夹下有nccl.dll和nccl.lib生成,将这两个分别复制到\caffe-windows-ms\windows\thirdparty\NCCL\bin和D:\caffe-windows-ms\windows\thirdparty\NCCL\lib下(具体怎么编译成功还未解决)
4. 验证在是否成功安装caffe
将caffe-windows-ms\Build\x64\Release\pycaffe路径下的caffe文件夹复制黏贴到minanaconda\Lib\site-packages,也就是安装了python2.7环境下Lib中的site-packages文件夹下。若无报错信息,则安装成功!
这一步遇到的主要问题是python中缺少安装包的问题,比如numpy,matplotlib,scipy,skimage.io,总之缺什么就安装什么。
pip install numpy
pip install matplotlib
pip install scipy
pip install scikit-image 错误信息:No module named skimage.io
pip install protobuf 错误信息:No module named google.protobuf.internal
参考博客:https://blog.csdn.net/zisu_zisu123/article/details/72829214
https://blog.csdn.net/u012684062/article/details/102613863
https://blog.csdn.net/firework_zz/article/details/84239981