Caffe学习笔记02——基于Windows安装Caffe(GPU版)

参考的官方配置文档:GitHub - BVLC/caffe-windows

1、环境准备

环境清单:

  • 操作系统:Windows10
  • Windows版Caffe源码
  • Visual Studio 2015
  • CMake
  • Python3.5
  • 依赖包
  • 显卡:NVIDIA GeForce GTX 1650
  • CUDA & cuDNN

详细操作:
①Windows版Caffe源码:官网下载,下载解压后,文件名是caffe-windows,如果解压完名字是caffe则说明下载错了。

②Visual Studio 2015:可以在 下载之家 或者 软件学堂 进行下载,下载community版即可,下载ultimate版还需要破解。安装时组件里面一定要选上Visual C++,因为后面编译时,会用到里面的C/C++编译器,不选的话编译时会报错:

-- The C compiler identification is unknown
-- The CXX compiler identification is unknown

③CMake:下载2016年以后的任意版本都行,我是在网上下载解压后直接用的,需要将bin目录放到系统环境变量下。CMake是编译时,会用到的一个工具,如果没安装好的话,编译时会报错:

'cmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。

④Python3.5:如果版本不对的话,编译时会报错:

Could not find url for MSVC version = 1900 and Python version = 3.8

安装一个Anaconda可以方便地切换环境,在Anaconda里新建一个Python3.5的环境,然后将对应的路径放到环境变量path的最上面(Python的路径有多个时,系统默认用最上面的那个),实在不行的话就下载Python3.5版本的Anaconda。

⑤依赖包:编译时要下载很多的依赖包,下载速度慢而且容易报错,所以我们提前下载好,下载地址
使用:先进行编译,软件会自动创建对应的文件夹并进行下载,我们Ctrl+C取消编译,然后将下载的依赖包放到这个文件夹中。我的默认地址是:

C:\Users\hp\.caffe\dependencies\download

⑥CUDA & cuDNN:CUDA官方下载 cuDNN官方下载 ,其中下载CUDA8.0以及对应的cuDNN即可,因为我的显卡是20系的GTX1650(Turing架构),所以只能安装CUDA10.0及以上。

2、编译

①caffe-windows代码解压后,找到cmake文件夹,修改caffe-windows\cmake下的Cuda.cmake

//cuda.cmke改动
set(Caffe_known_gpu_archs "35 50 60 61 75")
...
set(__archs_names "Fermi" "Kepler" "Maxwell" "Pascal" "All" "Manual" "Turing")
...
elseif(${CUDA_ARCH_NAME} STREQUAL "Turing")
    set(__cuda_arch_bin "75")

②修改C:\Users\xpf.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include\boost-1_61\boost\config\compiler下的nvcc.hpp
注释掉最后三行:
Caffe学习笔记02——基于Windows安装Caffe(GPU版)

没有修改的话会报如下错误:

nvcc fatal   : Unsupported gpu architecture 'compute_481'

③修改build_win.cmd,主要是69行-100行之间。

else (
    :: Change the settings here to match your setup
    :: Change MSVC_VERSION to 12 to use VS 2013
    ::  根据自己vs版本设置,2013就是12,2015就是14,我的是14
    if NOT DEFINED MSVC_VERSION set MSVC_VERSION=14 
    :: Change to 1 to use Ninja generator (builds much faster)
    :: 这里由于我使用的cmake编译,未使用ninja,所有设置为了0
    if NOT DEFINED WITH_NINJA set WITH_NINJA=0
    :: Change to 1 to build caffe without CUDA support
    :: 这里我们安装的是GPU版本所以设置为0;
    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 Votal Turing Ampere All]
    :: 上面那些都是显卡的架构(按时间排序)我的1650显卡是Turng架构
    if NOT DEFINED CUDA_ARCH_NAME set CUDA_ARCH_NAME=Turing
    :: 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
    :: 此处就是编译vs的版本,是Release还是Debug版本,我的是Release,Release优化了代码,训练速度更快。
    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)
    :: 选择python版本,我使用是python 3.5,所以修改为3
    if NOT DEFINED PYTHON_VERSION set PYTHON_VERSION=3
    :: Change these options for your needs.
    :: 这里选择需要的选项,我需要python,所以将python选项设置为了1,如果需要MATLAB,则将其也设置为1
    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
    :: 生成安装文件,所以需要设置为1
    if NOT DEFINED RUN_INSTALL set RUN_INSTALL=1
)

④修改好build_win.cmd文件后保存退出,然后在caffe-windows文件下打开命令行工具,输入:

.\script\build_win.cmd

之所以在cmd里面运行是因为出错了会显示提示信息,直接运行build_win.cmd出错了就直接退出了,cmd的一些基本操作:

打开窗口:WIN+R后输入cmd
切换到G盘:G:
切换到指定目录:cd G:\caffe-windows\scripts
执行文件:build_win.cmd
注意:改变环境变量后cmd窗口要关了重开

⑤等待编译结束:编译时我乱码了,不影响正常使用。
Caffe学习笔记02——基于Windows安装Caffe(GPU版)

③生成解决方案(对整个项目进行编译):

G:\caffe-windows\scripts\build

这个路径下有个Caffe.sln文件,用Visual Studio打开并且生成解决方案
Caffe学习笔记02——基于Windows安装Caffe(GPU版)
最后全部成功,没有失败即可
Caffe学习笔记02——基于Windows安装Caffe(GPU版)

3、验证

①scripts文件下会多出一个build文件
②G:\caffe\caffe-windows\scripts\build\tools\Release里面有很多编译生成的可执行文件
③可以做一个Mnist的实验,来验证一下。
训练时提示使用了GPU:
Caffe学习笔记02——基于Windows安装Caffe(GPU版)

上一篇:深度残差收缩网络(2):整体思路


下一篇:海思AI芯片(HI35xx):tensorflow转caffemodel之caffe和tensoflow结构参数的差异