简介:caffe 是啥就不多说了,本文主要讲了在windows10 creator中,使用vs2015,CMake 3.8.0,Anaconda Python 2.7,CUDA 8.0环境配置安装 caffe
坑点预防:
0、网络环境建议全局代理,防止有些文件因为网络问题无法下载,导致莫名其妙的问题
1、windows10 creator 64位,首先安装visual studio 2015 update3
2、下载安装CMake,把cmake加入环境变量
3、下载安装CUDA 8.0
4、下载安装Anaconda Python,并把python加入环境变量
5、安装matlab 2015a
6、如有问题,请先对着配置文件检查
详细步骤:
一、基本软件安装
这些软件安装均不会出现依赖问题,故提前装好后面直接使用即可。
windows10 creator 64位,visual studio 2015 update3,使用默认环境安装即可,默认已安装好。
下载安装CMake,把cmake加入环境变量
下载安装Anaconda Python 2,并把python 2.7加入环境变量
二、配置CUDA环境
- 从NVIDIA官网下载并安装CUDA8.0,默认是安装在c盘目录下
安装完后会生成两个系统变量:
CUDA_PATH
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 CUDA_PATH_V8_0
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
2.测试是否成功 : 进入PowerShell,输入nvcc -V命令,如图所示
表示CUDA安装成功
3.联合VS2015测试CUDA
此处有坑,该测试工程需要directX SDK,如果C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include没有相关.h文件,就需要手动下载安装 DirectX Software Development Kit
安装好后手动将C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include里的文件复制到C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\common\inc 就能解决d3dx9.h等文件不存在的问题。
这里还要说的是,因为本人vs2015安装报错,导致项目属性无法调整,所以直接采用复制头文件的方法,其实直接在vs中添加一个引用路径就行了。
进入CUDA Samples目录
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0
点击Samples_vs2015.sln文件打开vs2015,直接生成解决方案(根据电脑配置高低,可能会等很久),如果生成成功,那么说明CUDA已经配置好了。接下来进入生成的目录
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\bin\win64\Debug
随意运行其中的样例exe,这里我运行的是smokeParticles.exe,如图:
测试成功!纯代码生成的烟雾,是不是很厉害?
这样的话,就说明我的CUDA已经安装成功了,并且已经和VS2015完全拼接为一体,如果CUDA或者VS其中任意一个版本发生变化,都需要对两者进行重装。
4.在VS2015的cpp工程中配置CUDA依赖环境
简言之,两步即可:
1、右键工程->生成依赖项->生成自定义->选择cuda8.0
2、右键工程->属性->链接器->输入->附加依赖项->添加 cudart.lib
下面通过一个简单的样例来说明。
1、新建一个VS空白项目,打开源.cpp,输入以下代码:
#include <stdio.h>
#include <stdlib.h>
#include “cuda_runtime.h”
#include “device_launch_parameters.h”bool InitCUDA()
{
int count;
cudaGetDeviceCount(&count);
if (count == 0)
{
fprintf(stderr, “There is no device.\n”);
return false;
}
int i;
for (i = 0; i < count; i++)
{
cudaDeviceProp prop;
if (cudaGetDeviceProperties(&prop, i) == cudaSuccess)
{
if (prop.major >= 1){
break;
}
}
}
if (i == count)
{
fprintf(stderr, “There is no device supporting CUDA 1.x.\n”);
return false;
}
cudaSetDevice(i);
return true;
}int main()
{
if (!InitCUDA())
{
return 0;
}
printf(“HelloWorld, CUDA has been initialized.\n”);
system(“pause”);
return 0;
}
2、右键工程->生成依赖项->生成自定义->
选择cuda8.0->确定
3、右键工程->属性->链接器->输入->附加依赖项->添加 cudart.lib -> 确定
4、调试->运行
如图所示,表明CUDA运行成功。
自此,CUDA安装配置彻底完成了,下一步可以安装caffe了。
三、使用VS2015编译Caffe
1.下载Windows版的caffe,https://github.com/happynear/caffe-windows
2.再次确认是 Visual Studio 2015, CUDA 8.0,然后开始安装编译需要的第三方库 转送门 https://pan.baidu.com/s/1mhZgDeS . 解压到 $(caffe-windows-path)/windows/thirdparty/
3.复制windows\CommonSettings.props.example
到 \windows\CommonSettings.props
对着配置文件的注释,根据实际情况仔细修改,可以选择只用CPU,可以选择开启CUDN,禁用cuDNN
4.安装Python接口所需依赖
conda install --yes numpy scipy matplotlib scikit-image pip pip install protobuf
注意,在编译完成后需要手动添加Python依赖:
set PythonPath
environment variable to point to <caffe_root>\Build\x64\Release\pycaffe
, or
copy folder <caffe_root>\Build\x64\Release\pycaffe\caffe
under <python_root>\lib\site-packages
.
5.matlab接口
To build Caffe Matlab wrapper set MatlabSupport
to true
and MatlabDir
to the root of your Matlab installation in .\windows\CommonSettings.props
注意,在编译完成后需要手动添加进matlab引用路径
add the generated matcaffe
folder to Matlab search path, and
add <caffe_root>\Build\x64\Release
to your system path.
5.
编译 \windows\Caffe.sln
四、mnist测试:
下载MNIST数据库http://pan.baidu.com/s/1o7YrhKe,解压缩后将mnist-test-leveldb与mnist-train-leveldb文件夹放到\examples\mnist下
修改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: “….省略/examples/mnist/mnist-train-leveldb” //写上你的绝对路径
batch_size: 64
backend: LEVELDB //格式改成LEVELDB
}
}
layer {
name: “mnist”
type: “Data”
top: “data”
top: “label”
include {
phase: TEST
}
transform_param {
scale: 0.00390625
}
data_param {
source: “….省略/examples/mnist/mnist-test-leveldb” //写上你的绝对路径
batch_size: 100
backend: LEVELDB //格式改成LEVELDB
}
}
修改lenet_solver.prototxt文件:
net: “….省略/examples/mnist/lenet_train_test.prototxt” //绝对路径
snapshot_prefix: “….省略/examples/mnist/lenet” //绝对路径
solver_mode: CPU //CPU模式
编写批处理文件run.bat内容如下:
D:\caffe-windows-ms\Build\x64\Release\caffe.exe train -solver=D:/caffe-windows-ms/examples/mnist/lenet_solver.prototxt
Pause
上面替换为你的文件绝对路径就可以
双击run.bat程序能够运行,并且之后也不会报错,那么恭喜你,Caffe-Windows配置成功了。
五、跑 Matlab 版的测试:
1、下载基本数据:
可以在 GitHub 上下载需要的 bvlc_reference_caffenet.caffemodel 文件,或者寻找其他资源如网盘;下载完成后解压至 .\models\bvlc_reference_caffenet 目录;
2、准备环境变量:
添加编译出来的 .\Build\x64\Release 文件夹到环境变量的 path 中,如果运行不成功记得重启系统再试(很诡异,测试时重启才看到环境变量生效);
3、启动 Matlab,指向 D:\caffe-windows-ms\matlab\demo目录;
添加路径 .\Build\x64\Release\matcaffe 到 Matlab Path 中.
然后运行如下命令:
im =
imread
(
'../../examples/images/cat.jpg'
);
scores = classification_demo(im, 1);
[score,
class
] =
max
(scores);
得到输出:
Elapsed time is 0.021982 seconds.
Elapsed time is 0.090115 seconds.
Cleared 0 solvers and 1 stand-alone nets
可以看出,得到了最大可能的标签为 282,0.2985.
运行如下代码可以看到更多的分类结果细节:
figure
;
plot
(scores);
axis
([0, 999, -0.1, 0.5]);
grid
on
如图:
经过艰难尝试,Caffe 的 windows 版和 Faster-RCNN 先后攻克,标记一下解决过程,以备后续查找。
此外,更常见的错误是 “Invalid MEX-file ‘……\caffe.mexw64’: 找不到指定的模块”,这个错误需要分两步解决,第一步是添加环境变量,目录为 .\Build\x64\Release;第二步是将 matcaffe 加入 matlab 的目录中(可能非必须,不加也成功过);
修改系统环境变量时,测试失败,但重启就可以,所以加了变量还不行建议重启系统试试;如果一直不行,那么将 .\Build\x64\Release 下生成的全部文件都复制到 .\matlab\+caffe\private 下,重启 Matlab 重试,应该可以解决。
六、caffe使用简述
Caffe | ImageNet tutorial
2.之后,用protobuf写好你的网络模型和Solver,可以参考mnist的写法。也可使用./model/下已有的model。
3.使用命令行caffe进行训练。
4.启一个C++ PROJECT,然后把caffe的include文件夹作为include path加进去,吧./build/lib作为library bath加进去,把./build/bin作为链接库加进去。
5.开始#include <caffe/caffe.hpp>,然后参考./examples/cpp_classification例子来写。
等学习得差不多了继续补充
作者:知乎用户
链接:https://www.zhihu.com/question/26493556/answer/111304179
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
参考链接:
Windows下VS2015编译caffe(CPU ONLY)
windows 10 下 Caffe + Matlab 部署
win10 + gtx1060 + cuda8.0 + caffe + vs2013
Windows下VS2015编译caffe
caffe window10 安装 Caffe在window10+VS2015安装
Brewing ImageNet
0 条评论