主要参考了两篇博客
http://blog.csdn.net/zhj_matlab/article/details/69943869,http://blog.csdn.net/cym1990/article/details/78563349,部分地方甚至是copy。但按照两篇博客安装、测试都出现了一些问题,本文根据问题的解决,写出了一些注意事项。
非常感谢原作者。
前言
写给小白,也为了给自己一个备忘。
在参照了网上的好几个博客和官方给的说明后,我终于配置好了我的caffe。我安装配置caffe的基础环境是win10 pro+VS2015 enterprise。
和博客http://blog.csdn.net/cym1990/article/details/78563349里一样,由于对caffe不熟悉,直接按照网络上博客给的方法配置,或多或少要出些问题。因为官方的文档、发布的版本,依赖的程序多多少有些变化、调整。
本文力求还原安装过程中遇到的一些问题,给需要的朋友一些经验,少走弯路。
准备工作:下载所需要的文件
注意:我都是下载64bit
(1)VS2015或者VS2013。我用的是VS2015企业版,社区版应该没问题。VS2013按照caffe官方文档,也应该没问题。
(2)CMAKE。需要3.4版本以上,我用的是3.9.6
下载地址:https://cmake.org/files/v3.9/cmake-3.9.6-win64-x64.msi
(3)DirectXSDK。就是Software Development,没有这个CUDA的SAMPLES有十几个编译通不过。
下载地址:KitDXSDK_Jun10.exe
https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=6812
(4)CUDA8.0。我安装的是cuda_8.0.61_win10。原来安装的是最新的9.0,不清楚可不可以,按照别人的博客安装后,出了些问题,怀疑是CUDA版本问题,就卸了重新安装了这个版本。但我现在完全不确定9.0是否就不可以。我成功配置后通过CUDA中的例子程序,DEVICEQUERY,查看发现CUDA DriverVersion=9.0, CUDA Runtime Version=8.0.说明我还是没有卸干净原先安装的CUDA9.0.
下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive
(5)cuDNN v5.1 for 8.0。可参考http://blog.csdn.net/cym1990/article/details/78563349下载,如果不清楚怎么下载的话,主要是需要注册NVADIA账号才能下载。根据要求,下载完成后,需要将cuDNNv5.1解压后的cuda文件拷贝至NVIDIA GPUComputing Toolkit\CUDA\ v8.0文件夹下,我的是C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v8.0。
下载地址:
(6)Anaconda。目前官方的版本是Anaconda 3.6和2.7,就是说内置了 Python2.7 or 3.6。 喜欢高版本的朋友注意了,3.6caffei不支持。所以你要么在历史档案中下Anaconda3-4.2.0-Windows-x86_64.exe,要么参照http://blog.csdn.net/cym1990/article/details/78563349下个3.6版本的,然后重新安装Anaconda的环境为 PYTHON3.5。当然2.7版本的就可以了。
下载地址:https://repo.continuum.io/archive/Anaconda3-4.2.0-Windows-x86_64.exe
(7)matlab。不确定什么版本才行,我用的是2017b。
(8)caffe。我是用Git-2.15.1.2-64-bit.exe按照命令行方式down的,命令行语句就是官网的指示,也可直接DOWN 个ZIP文件caffe-master.zip。
下载地址:Git
https://github.com/git-for-windows/git/releases/download/v2.16.0.windows.2/Git-2.16.0.2-64-bit.exe
下载地址:caffe
https://github.com/BVLC/caffe/tree/windows,点击clone or download。
2.配置caffe:
官方说明:
C:\Projects>git clone https://github.com/BVLC/caffe.git
C:\Projects>cdcaffe
C:\Projects\caffe>git checkout windows
:: Edit any of the options inside build_win.cmd tosuit your needs
C:\Projects\caffe>scripts\build_win.cmd
说明:
(1)前三条语句其实是下载你需要的CAFFE,C:\Projects就是你打算存放CAFFE文件的地方,在WINDOWS系统命令行中运行前三条语句,你就得到你想要的安装文件。我的理解是就是第一部分第8条下的那个ZIP文件,但是没直接下ZIP,是压缩前的文件,而且放在C:\Projects\caffe目录下了。
(2)修改scripts\build_win.cmd
第四条语句C:\Projects\caffe>scripts\build_win.cmd是要用命令行生成Windows下的解决方案。之前的文字::Edit any of the options inside build_win.cmd to suit your needs告诉了你需要修改该文件。
该文件其实是个TXT文件,在目录C:\Projects\caffe\scripts\下。使用记事本或者notepad++打开这个文件。
· line 29:设置CONDA_ROOT=C:\ProgramFiles\Anaconda3。路径是我安装Anaconda3的目录。
:: Set python 3.5 with conda as the defaultpython
if !PYTHON_VERSION! EQU 3 (
set CONDA_ROOT=C:\Program Files\Anaconda3
)
· Line 69~100:设置一些符号常量,相信不用解释含义。
) else (
:: Change the settings here to match yoursetup
:: 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 CUDAsupport
if NOT DEFINED CPU_ONLY set CPU_ONLY=0
:: Change to generate CUDA code for one ofthe following GPU architectures
:: [Fermi Kepler Maxwell Pascal All]
if NOT DEFINED CUDA_ARCH_NAME setCUDA_ARCH_NAME=Auto
:: Change to Debug to build Debug. This isonly relevant for the Ninja generator the Visual Studio generator will generateboth Debug and Release configs
if NOT DEFINED CMAKE_CONFIG setCMAKE_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 setCMAKE_BUILD_SHARED_LIBS=0
:: Change to 3 if using python 3.5 (only2.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 setBUILD_PYTHON=1
if NOT DEFINED BUILD_PYTHON_LAYER setBUILD_PYTHON_LAYER=1
if NOT DEFINED BUILD_MATLAB setBUILD_MATLAB=1
:: Ifpython is on your path leave this alone
if NOT DEFINED PYTHON_EXE setPYTHON_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 setRUN_INSTALL=0
)
修改后记得保存。
(3)在命令行下运行最后一句配置命令。 C:\Projects\caffe>scripts\build_win.cmd
当你执行最后一句命令的时候,它会下载一个依赖包,并且自动在C盘用户文件夹上生成C:\Users\Administrator\.caffe\dependencies\download文件夹,下载的依赖包libraries_v140_x64_py35_1.1.0.tar.bz2就放到里面。Administrator是我的用户名。
如你所见,下载速度贼慢,而且有可能出错,所以推荐自己下载然后放在指定位置。建议先运行build_win.cmd命令,如果速度太慢再把它关闭,这样就不需要自己创建对应的文件夹,只需把压缩文件拷贝就行。
下载地址:
https://github.com/willyd/caffe-builder/releases/download/v1.0.1/libraries_v140_x64_py35_1.0.1.tar.bz2
(4)再运行一次build_win.cmd命令,这次不会有什么问题,等待一小段时间后cmake就把vs2015的项目给创建出来了。
(5)在caffe\scripts\build文件夹下就生成了caffe.sln,用vs2015将其打开,并在release x64或者Debug x64 BUILD这个解决方案。
最后没有报错,那么配置就告一段落了。
3.测试caffe.exe
参见Windows下VS2015编译caffe(CPU ONLY)
(1)下载MNIST数据库https://pan.baidu.com/s/1o7YrhKe,解压缩后将mnist-test-leveldb与mnist-train-leveldb文件夹放到\examples\mnist下。注意
(2)修改lenet_train_test.prototxt文件:
name: "LeNet"
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
scale: 0.00390625
}
data_param {
source:"C:/Caffe/caffe/examples/mnist/mnist-train-leveldb"
batch_size: 64
backend:LEVELDB
}
}
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
scale: 0.00390625
}
data_param {
source:"C:/Caffe/caffe/examples/mnist/mnist-test-leveldb"
batch_size: 100
backend:LEVELDB
}
}
注意:修改4个红色字体文字,相信你看得懂,就是刚才拷贝的两个文件夹的绝对路径;以及两处格式
(3)修改lenet_solver.prototxt文件:
# The train/test net protocolbuffer definition
net: "C:/Caffe/caffe/examples/mnist/lenet_train_test.prototxt"
# test_iter specifies how manyforward passes the test should carry out.
# In the case of MNIST, we havetest batch size 100 and 100 test iterations,
# covering the full 10,000 testingimages.
test_iter: 100
# Carry out testing every 500training iterations.
test_interval: 500
# The base learning rate, momentumand the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 10000
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "C:/Caffe/caffe/examples/mnist/lenet"
# solver mode: CPU or GPU
solver_mode: GPU
注意:修改两处个红色字体文字,相信你看得懂,就是修改文件或者文件夹的绝对路径;如果你的硬件不支持GPU编程,最后一句修改为CPU。
(4)在minist文件夹下编写批处理文件run.bat,内容如下:
C:\Caffe\caffe\scripts\build\tools\Release\caffe.exe train --solver=C:\Caffe\caffe\examples\mnist\lenet_solver.prototxt
Pause
说明:第一行,就是执行你编译得到的caffe.exe,所以需要换成你的caffe.exe的绝对路径。
注意:
· 斜杠必须使用backslash:\。使用Slash:/会出错。
· train 和—solver之间有一空格,不能省略。无空格会出错。
(5)双击run.bat程序能够运行,并且之后也不会报错,那么恭喜你,Caffe-Windows配置成功了。