本文十分详细的讲述了在windows10平台+GTX1070+VisualStudio2015安装cuda8.0及caffe的所有需要的步骤。
1、安装cuda8.0
2、安装cudnn
3、安装anaconda(Python管理工具)
4、安装cmake
5、下载caffe
6、修改配置文件
7、使用cmd命令安装caffe
8、用Visual Studio编译,注意屏蔽warning
9、mnist训练,注意修改文件路径
10、powershell权限修改
直接在官网下载后双击.exe文件进行安装。官网下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive
安装过程全部默认即可,中间可能会出现几秒钟的黑屏。此外,之前我用笔记本,显卡型号为gtx940mx安装cuda8.0时出现了版本不兼容的报错,直接忽略点继续就行了
安装完成后进入C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0,运行Samples_vs2015.sln(用VS2015打开),打开后按Ctrl+F5,出现下图所示结果表明安装成功:
此外,NVIDIA还推出了cuda8.0的补丁,同样的直接默认安装即可。
cudnn下载地址:https://developer.nvidia.com/rdp/cudnn-download。下载cudnn需要注册开发者账号,免费注册个就好。
下载完成后解压,得到一个cuda文件夹。然后进行以下操作:
将 cuda\bin\cudnn64_7.dll 复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
将 cuda\ include\cudnn.h 复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
将 cuda\lib\x64\cudnn.lib 复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
安装完后最好检查下是否环境变量已添加成功。具体方法:
按windows+R打开运行,输入cmd,回车确认后进入命令行;
输入 control sysdm.cpl 打开‘系统属性’;
选择‘高级’->‘环境变量’
确定下面的环境变量已存在于系统中:
Variable Name: CUDA_PATH
Variable Value: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
官网下载地址:https://www.anaconda.com/download/
下载3.6版本的,之后可以改成Python3.5。下载后直接运行安装就OK。
安装完成后,按下windows键,键入anaconda,打开anaconda Prompt。然后在命令行中输入conda create --name python35 python=3.5
用于创建python3.5。
创建完成后输入conda install -n python34 numpy
为python3.5添加numpy这个包,在后面安装caffe时会用到。
然后将python3.5的执行文件所在的文件夹位置,我的是D:\ProgramData\Anaconda3\envs\python35,添加至Path环境变量。
添加完成后打开一个cmd命令提示符,键入python后回车,如果出现下图python界面表示安装完成
CMake下载地址:https://cmake.org/download/
选择windows的最新版,注意下载二进制.msi文件而不是源码,下载后直接运行安装即可。
注意,此处要勾选添加环境变量,因为后面使用命令行编译时如果没有添加CMake的环境变量就无法使用make命令
可以用git命令,也可以直接下载zip文件解压。git地址:https://github.com/BVLC/caffe/tree/windows
假设解压到了path(我的是“D:\Program Files”)这个文件夹里。
解压完成后进入 path\caffe-windows\scripts 文件夹,在里面有个build_win.cmd文件。这个文件是对windows下的编译环境一些预处理的。详细的说明在git上有,感兴趣的同学可以自己去看看。然后将该文件复制一份副本,改名为build_win1,注意,此处要去掉后缀名,不然无法修改里面内容。改名后用notepad++打开该副本,修改几处值。
注意,这个文件有个大的if语句。判断是否DEFINE了APPVEYOR,在我的机子上是没有DEFINE的。因此,可以直接看else部分。
else (
:: Change the settings here to match your setup
:: Change MSVC_VERSION to 12 to use VS 2013
if NOT DEFINED MSVC_VERSION set MSVC_VERSION=14
:: Change to 1 to use Ninja generator (builds much faster)
if NOT DEFINED WITH_NINJA set WITH_NINJA=0
:: Change to 1 to build caffe without CUDA support
if NOT DEFINED CPU_ONLY set CPU_ONLY=0
:: Change to generate CUDA code for one of the following GPU architectures
:: [Fermi Kepler Maxwell Pascal All]
if NOT DEFINED CUDA_ARCH_NAME set CUDA_ARCH_NAME=Auto
:: Change to Debug to build Debug. This is only relevant for the Ninja generator the Visual Studio generator will generate both Debug and Release configs
if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release
:: Set to 1 to use NCCL
if NOT DEFINED USE_NCCL set USE_NCCL=0
:: Change to 1 to build a caffe.dll
if NOT DEFINED CMAKE_BUILD_SHARED_LIBS set CMAKE_BUILD_SHARED_LIBS=0
:: Change to 3 if using python 3.5 (only 2.7 and 3.5 are supported)
if NOT DEFINED PYTHON_VERSION set PYTHON_VERSION=3
:: Change these options for your needs.
if NOT DEFINED BUILD_PYTHON set BUILD_PYTHON=1
if NOT DEFINED BUILD_PYTHON_LAYER set BUILD_PYTHON_LAYER=1
if NOT DEFINED BUILD_MATLAB set BUILD_MATLAB=0
:: If python is on your path leave this alone
if NOT DEFINED PYTHON_EXE set PYTHON_EXE=python
:: Run the tests
if NOT DEFINED RUN_TESTS set RUN_TESTS=0
:: Run lint
if NOT DEFINED RUN_LINT set RUN_LINT=0
:: Build the install target
if NOT DEFINED RUN_INSTALL set RUN_INSTALL=1
)
然后还有160行cmake下的参数列表,将-DCUDNN_ROOT=D:/Program Files/caffe/cudnn-8.0-windows10-x64-v5.1/cuda ^
添加至末尾
cmake -G"!CMAKE_GENERATOR!" ^
-DBLAS=Open ^
-DCMAKE_BUILD_TYPE:STRING=%CMAKE_CONFIG% ^
-DBUILD_SHARED_LIBS:BOOL=%CMAKE_BUILD_SHARED_LIBS% ^
-DBUILD_python:BOOL=%BUILD_PYTHON% ^
-DBUILD_python_layer:BOOL=%BUILD_PYTHON_LAYER% ^
-DBUILD_matlab:BOOL=%BUILD_MATLAB% ^
-DCPU_ONLY:BOOL=%CPU_ONLY% ^
-DCOPY_PREREQUISITES:BOOL=1 ^
-DINSTALL_PREREQUISITES:BOOL=1 ^
-DUSE_NCCL:BOOL=!USE_NCCL! ^
-DCUDA_ARCH_NAME:STRING=%CUDA_ARCH_NAME% ^
-DCUDNN_ROOT=D:/Program Files/caffe/cudnn-8.0-windows10-x64-v5.1/cuda ^
"%~dp0\.."
修改完成后,为副本添加.cmd后缀名,然后双击运行。或者自己打开一个命令提示符窗口将文件拖入窗口后回车(建议这样做,如果直接双击运行的话一旦中间有错误,运行窗口就直接闪退了,无法看到哪里出错)。
此时会报一个错误
CMake Error at
cmake/WindowsDownloadPrebuiltDependencies.cmake:71 (file):
file DOWNLOAD HASH mismatch
for file:
[C:/Users/HUST/.caffe/dependencies/download/libraries_v140_x64_py35_1.1.0.tar.bz2]
expected hash:
[f060403fd1a7448d866d27c0e5b7dced39c0a607]
actual hash: [da39a3ee5e6b4b0d3255bfef95601890afd80709]
status: [7;"Couldn't connect to server"]
这是因为原来下载libraries_v140_x64_py35_1.1.0.tar.bz2这个文件的网址现在无法访问的缘故。自己手动从网上下载后,放到C:/Users/HUST/.caffe/dependencies/download中,再次运行,就OK了;
注意,自己打开命令提示符,然后把运行脚本拖进去时要记住,安装目录是你命令提示符当前的目录。
打开生成的build文件夹,用vs2015打开caffe.sln
选择编译类型为Release,x64。然后生成解决方案,中间会有很多警告,忽略就好了。编译完后将会在build\install\bin里产生caffe.exe文件,表明安装完成。
待续……