简介: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

#include

#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 \Build\x64\Release\pycaffe, or

copy folder \Build\x64\Release\pycaffe\caffe under \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 \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 中.

然后运行如下命令:

得到输出:

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]);

gridon

如图:

经过艰难尝试,Caffe 的 windows 版和 Faster-RCNN 先后攻克,标记一下解决过程,以备后续查找。

此外,更常见的错误是 “Invalid MEX-file ‘……\caffe.mexw64’: 找不到指定的模块”,这个错误需要分两步解决,第一步是添加环境变量,目录为 .\Build\x64\Release;第二步是将 matcaffe 加入 matlab 的目录中(可能非必须,不加也成功过);

修改系统环境变量时,测试失败,但重启就可以,所以加了变量还不行建议重启系统试试;如果一直不行,那么将 .\Build\x64\Release 下生成的全部文件都复制到 .\matlab\+caffe\private 下,重启 Matlab 重试,应该可以解决。

六、caffe使用简述

1.首先,按照官方文档的方式,准备好LMDB或LEVELDB数据库,也可以使用HDF5和图片格式,具体图片格式的使用方式,可以参考ImageNet的例子

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 ,然后参考./examples/cpp_classification例子来写。

等学习得差不多了继续补充

作者:知乎用户

链接:https://www.zhihu.com/question/26493556/answer/111304179

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

参考链接:

python caffe框架_Caffe(卷积神经网络框架)配置-Windows篇相关推荐

  1. 大盘点|卷积神经网络必读的 100 篇经典论文,包含检测 / 识别 / 分类 / 分割多个领域

    关注极市平台公众号(ID:extrememart),获取计算机视觉前沿资讯/技术干货/招聘面经等 原文链接:大盘点|卷积神经网络必读的 100 篇经典论文,包含检测 / 识别 / 分类 / 分割多个领 ...

  2. python神经网络调节参数_神经网络进阶-用python实现一个完整的神经网络框架并在CIFAR10数据集上调参...

    上一个博客中讲解了用python实现一个简单的两层神经网络,我们是把所有的网络层都直接写在了类中.但是作为一个神经网络框架,网络的结构应该是可以由使用者自定义的,这样一来也就不用为每个网络结构都重写所 ...

  3. 使用paddle框架无人驾驶 —— 卷积神经网络计算方向盘打角

    前言 之前一直在弄车道线的检测和识别,效果都不佳,要么车道线分割太慢了,要么容易出现丢线的情况处理的不是很好,所以索性直接用卷积神经网络做一个线性拟合. 完整文章地址 古月居博客网站 效果 用魔法玩欧 ...

  4. PyTorch框架:(5)使用PyTorch框架构建卷积神经网络

    基于pytorch构建一个非常简单的卷积神经网络,以Mnist数据集为例演示基本的流程 1.导工具包 2.读取数据 (把该写的超参数全部写出来) PS:当前输入图像的大小,注意这里使用卷积网络处理Mn ...

  5. python狗图像识别_TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片

    本文是Python通过TensorFlow卷积神经网络实现猫狗识别的姊妹篇,是加载上一篇训练好的模型,进行猫狗识别 本文逻辑: 我从网上下载了十几张猫和狗的图片,用于检验我们训练好的模型. 处理我们下 ...

  6. 【项目实战】Python基于OpenCV和卷积神经网络CNN进行车牌号码识别项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 车牌识别系统(Vehicle License Plate Rec ...

  7. 卷积神经网络必读的100篇经典论文,包含检测/识别/分类/分割多个领域

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 参考|学术头条 编辑|极市平台 作为深度学习的代表算法之一,卷积神经 ...

  8. 论文大盘点|卷积神经网络必读的100篇经典论文,包含检测/识别/分类/分割多个领域...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 转载自:极市平台 作为深度学习的代表算法之一,卷积神经网络(Convolution ...

  9. 理解卷积神经网络?看这篇论文就够了

    https://www.toutiao.com/a6641180491963695629/ 2018-12-31 23:32:08 南洋理工大学的综述论文<Recent Advances in ...

  10. cnn图像二分类 python_人工智能Keras图像分类器(CNN卷积神经网络的图片识别篇)...

    上期文章我们分享了人工智能Keras图像分类器(CNN卷积神经网络的图片识别的训练模型),本期我们使用预训练模型对图片进行识别:Keras CNN卷积神经网络模型训练 导入第三方库 from kera ...

最新文章

  1. VirtualBox6.0中CentOS7.6 网络配置
  2. python中文版-Python3.8.2下载
  3. spark如何防止内存溢出_Spark 理论基石 —— RDD
  4. KubeMeet 深圳站完整议题出炉 快来 get 云原生边缘计算硬核技术动态
  5. 为什么做软件类项目,会出现人多,事少,工作量大的情况?
  6. 新论文推荐:Auto-Keras:自动搜索深度学习模型的网络架构和超参数
  7. 红米airdots掉了怎么查找_红米K30 Pro 荣耀V30pro 这两款手机该怎么选呢?
  8. python中a and b什么意思_Python中的a+=b和a=a+b之间的区别是什么?
  9. SpringCloud微服务:Sentinel哨兵组件,管理服务限流和降级
  10. 13个美国大学生最常用的社交网络
  11. php 织梦模板 防盗,织梦DedeCMS模板怎么防盗
  12. 一个普通的 Zepto 源码分析(一) - ie 与 form 模块
  13. python正则表达式练习题
  14. Sparkline图
  15. 抖音直播预告开通条件是什么?
  16. 热血江湖辅助代码编写教程(价值500
  17. 向量运算(点积,叉积)
  18. 2021观澜二中高考成绩查询,深圳中学排名
  19. 公司招了个漂亮女程序员是种什么样的体验?
  20. 计算机结构化面试万能套话,结构化面试30句万能套话拯救你.pdf

热门文章

  1. VS卸载,一键卸载VS
  2. 用python画图的好处_用Python绘图,感受编程之美
  3. 磁盘分区助手一键迁移操作系统——易我分区大师
  4. 深度强化学习算法 A3C (Actor-Critic Algorithm)
  5. MySQL数据库增删改查的SQL语句
  6. 经验模态分解(Empirical Mode Decomposition ,EMD)特征提取及其原理
  7. 获取微信所有聊天记录数据并通过Python制作词云图
  8. 基于java(ssm)校园办公室报修管理系统(java毕业设计)
  9. 简单集成华为PUSH
  10. 如何对萤石云视频解码