在网上找了许多安装Caffe的教程 感觉全都是杂乱无章的 而且也没有详细的 只能自己当小白鼠来实验一次了
本次配置:CUDA 8.0+ CUDNN +VS 2015 +Python 3.5 + Caffe
1、安装CUDA
安装还是非常简单的 直接点安装就可以了,注意在这里要选择自定义,而后勾选所有组件下载:
全部勾选:
而后一直next就可以了,安装过程中可能会出现黑屏是正常的
官方教程上面是CUDA 7.5或8.0 此处使用的是VS2015,就只能使用8.0了(注:电脑的显卡必须是英伟达才可以使用,如果不是只能使用CPU加速了,CPU就简单多了,网上有教程,显卡较弱也建议使用CPU)
附:CUDA 8.0 官方下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive
官方地址可能会经常失败,故而附上我自己下载的软件:链接:https://pan.baidu.com/s/1hmxiMi8C60M2F4AVOmSIUA 密码:f1a6(里面有CUDA 8.0及9.0)
那么如何知道自己的电脑支持哪个CUDA的版本呢 首先打开自己的NVIDIA控制面板,而后打开帮助——>选择系统信息,如下图:(若不知道哪里可以在小娜那里搜索就可以了)
而后点击组件就可以看见了,CUDA后面的数字就是支持最新的版本信息(可向下兼容)
2、安装cuDNN
从nVidia网站下载相应的版本,此处我下载的是CUDA 8.0相应的版本。需要注册一个账号,注意需要翻墙才能够注册,否则会很慢很慢(若不想科学上网我附上一个CUDA 9.1 及8.0 相应的版本链接:https://pan.baidu.com/s/1ZrP72xkaU2DvULWogGZUsQ 密码:p2jx)
将下载的zip解包到%CUDA_PATH%(由CUDA安装程序设置的环境变量,在安装CUDA时会自动设置环境变量),一般是默认路径是:C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.1
3、安装Python(最好使用python3.5,其他版本可能会出错)
(1)使用Miniconda安装:
如果本机没安装python,可以下载
Miniconda 2.7 x64-bit 或者3.5 x64 bit,从官方网址:http://conda.pydata.org/miniconda.html选择下载,默认配置路径安装即可,并且要为python添加环境变量。
同时需要以管理员权限安装numpy、scipy、matplotlib、scikit-image、protobuf包,安装命令如下:
conda install --yes numpy scipy matplotlib scikit-image pip
pip install protobuf
(2)使用Anacon安装(推荐,但是windows会可能出现一个安装时不能创建菜单的问题,这个问题至今都没有解决,如果谁解决了可以给我留言,谢谢)
安装python或者使用Anacon也可以,下载链接为:https://www.anaconda.com/download/ ,同时添加到环境变量
因Anaconda中附有numpy、scipy、matplotlib、scikit-image、protobuf,可以不用再安装这些
若出现问题,可参考:https://docs.anaconda.com/anaconda/user-guide/troubleshooting
(3)使用官方python安装(最少出现解决不了的错误)
官方下载链接:https://www.python.org/downloads/windows/(下载64位,此处下载的是python 3.5 x64)安装时记得将添加环境变量的勾上
安装python后需要下载:numpy、scipy、matplotlib、scikit-image、protobuf
进入cmd中直接输入:
pip install numpy (下载numpy时提示pip版本必须是10才可以,故而输入:python -m pip install --upgrade pip 就可以更新pip)
pip install scipy
pip install scikit-image
pip install matplotlib
pip install protobuf
4、安装visual studio
版本为2013或2015,官方链接为:https://my.visualstudio.com/Downloads?q=visual%20studio%202015&wt.mc_id=o~msft~vscom~older-downloads
若嫌麻烦可以使用我下载的VS2015,同样是官方版本:链接:https://pan.baidu.com/s/177dIZw7e8sBTrjw-EX-lIA 密码:ju8y
5、Cmake安装
安装比较简单,附下载链接:https://cmake.org/download/
6、Matlab安装(python和matlab二选一即可 我使用的是python)
安装教程及破解版地址下载链接:https://blog.csdn.net/gisboygogogo/article/details/76793803
7、安装及配置Caffe
首先先上官方教程的链接http://caffe.berkeleyvision.org/installation.html#hardware
然后是windows的下载包及教程https://github.com/BVLC/caffe/tree/windows
最方便的则是使用cmd进行安装配置,首先安装官方教程输入以下命令:
C: Projects > git clone https://github.com/BVLC/caffe.git C: Projects > cd caffe C: Projects caffe > git checkout windows ::编辑build_win.cmd中的任何选项以满足您的需要 C: Projects caffe > scripts build_win.cmd
可以在自己打算安装Caffe的文件夹中输入以下命令行,不一定非得在C盘中输入,要根据直接的安装路径
经过漫长的等待(视电脑性能而定,我的用时15分钟),电脑终于执行完毕,成功后打开caffescriptsuild应该能看见可由VS编译的Caffe.sln工程文件。
然而在执行C: Projects caffe > scripts build_win.cmd 时我收集了可能会出现以下错误:
(1)'"E:Program Files (x86)Microsoft Visual Studio 14.0Common7Tools....VCvcvarsall.bat"' 不是内部或外部命令,也不是 可运行的程序 或批处理文件。 -- The C compiler identification is unknown -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:18 (project): No CMAKE_C_COMPILER could be found. CMake Error at CMakeLists.txt:18 (project): No CMAKE_CXX_COMPILER could be found.
(2)提示:
使用notepad++打开caffescripts下的build_win.cmd进行修改:
(1)MSVC_VERSION 根据你VS项目版本来,14对应VS2015的项目,12对应VS2013的项目
(2)只使用CPU的将 CPU_ONLY 改为1
(3)PYTHON_VERSION 根据你本机版本来,我是2.7所以是2,3.5就是3
(4)CUDA_ARCH_NAME 是CUDA的架构名称,可选值有:Kepler,Fermi,Maxwell,Pascal,Manual,All,Auto,Auto是自动检测最优值
(5)WITH_NINJA 要设为0,你不会用到ninja编译器来进行编译
(6)改完后去scriptsuild中把 CMakeCache.txt 文件删掉。因为这里面记录的是用Ninja来编译的,不删除的话不能用VS来编译
(7)在多个 GPU 上运行 Caffe 需要使用 NVIDIA NCCL
以下是我的修改:
注:根据官方教程,若安装了CUDNN,则
要使用cuDNN,最简单的方法是将cuda
文件夹的内容复制到CUDA工具包安装目录中。
例如,如果您安装了CUDA 8.0并下载了cudnn-8.0-windows10-x64-v5.1.zip,则应该将该cuda
目录的内容复制到C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0
。
或者,您可以定义CUDNN_ROOT缓存变量以指向解压缩cuDNN文件的位置,例如C:/Projects/caffe/cudnn-8.0-windows10-x64-v5.1/cuda
。
或者在scripts/build_win.cmd中添加,如下(根据自己的安装路径改变):
而后删除caffescriptsuild文件夹,重新开始
(3)提示出现:The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
解决方法:在网上单独下载一个windows SDK 8.1,或者打开VS2015安装包修改选项下载工具windows SDK8.1
(4)错误CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40(message):
Could not find url for MSVC version = 1910 and Python version = 2.7.
解决方法:这是由于使用的python版本问题,不能使用最新版本,必须使用python3.5,重新安装即可
(5)错误:无法将“script”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
方法:可以直接进入script文件夹,而后输入:.uild_win.cmd 即可
(6)错误:一个名为“libraries_v140_x64_py27_1.1.0.tar.bz2”的依赖包无法下载成功
方法:打开https://github.com/willyd/caffe-builder/releases/download将该包下载下来,由于之前虽然下载的代码执行失败了可还是为我们建立好了存放依赖库的文件夹,我们把对应文件下载好后解压放进去(默认是在C盘当前用户目录下的dependencies文件夹,download存放下载文件下来的文件,libraries_v140_x64_py27_1.1.0文件夹下则是存放该文件解压后的library包) ,手动修改cmake文件夹下WindowsDownloadPrebuiltDependencies.cmake文件和scripts文件夹下download_prebuilt_dependencies.py文件代码,让程序绕过文件中下载和解压的部分直接编译
8、python接口
(1)安装Anaconda或Miniconda版本
打开Anaconda下的Anaconda Prompt,cmd输入:
conda config --add channels conda-forge conda config --add channels willyd
并安装以下软件包:
conda install --yes cmake ninja numpy scipy protobuf==3.1.0 six scikit-image pyyaml pydotplus graphviz
并将caffe/python下的caffe文件复制到 python安装路径下的lib/site-packages下
在cmd中输入python,而后执行 import caffe ,若没有错误,则配置成功
(2)安装python版本
打开cmd输入:
pip install --yes cmake ninja numpy scipy protobuf==3.1.0 six scikit-image pyyaml pydotplus graphviz
安装软件,并将caffe/python下的caffe文件复制到 python安装路径下的lib/site-packages下
在cmd中输入python,而后执行 import caffe ,若没有错误,则配置成功
9、VS编译caffe
在build目录下将Caffe.sIn 文件打开
注:若使用VS2015打开Caffe.sIn 文件时弹出:
未能正确加载python tools package包
解决方法:打开路径 C:Users用户名AppDataRoamingMicrosoftVisualStudio14.0(若没有则自己创建),而后新建文件:ActivityLog.xml ,并将以下代码复制进去:
<entry> <record>257</record> <time>2010/05/02 20:36:35.490</time> <type>Error</type> <source>VisualStudio</source> <description>CreateInstance failed for package [Microsoft.Data.Entity.Design.BootstrapPackage.BootstrapPackage, Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]</description> <guid>{7A4E8D96-5D5B-4415-9FAB-D6DCC56F47FB}</guid> <hr>80070002</hr> <errorinfo>Could not load file or assembly 'Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.</errorinfo> </entry> <entry> <record>258</record> <time>2010/05/02 20:36:35.513</time> <type>Error</type> <source>VisualStudio</source> <description>End package load [Microsoft.Data.Entity.Design.BootstrapPackage.BootstrapPackage, Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]</description> <guid>{7A4E8D96-5D5B-4415-9FAB-D6DCC56F47FB}</guid> <hr>80004005 - E_FAIL</hr> <errorinfo>Could not load file or assembly 'Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.</errorinfo> </entry>
然后再打开VS2015就没有报错了。
而后在VS中右键CMakeTargets底下的All_build生成,注意,此时必须在release,x64下生成(在VS左上角设置)
若生成成功没有报错就表示大功告成啦!
完成后可以使用mnist检测caffe是否有效,具体教程可见我的下一篇