1、环境搭建

1.1 下载安装vs2013

1.2 下载安装matlabR2014a

1.3 下载安装cuda7.5

1.3.1 CUDA 7.5 安装

1.运行cuda_ 7.5.18_windows.exe,程序会检测系统的兼容性如下图: 

2.选择“同意并继续”,进入下图安装过程 (备注:安装cuda时,要关闭所有的vs程序,关闭360等管家软件) 

3.等待大概半个小时后,安装程序终于完成了。

1.3.2  添加环境变量

CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
CUDA_PATH_V7_5 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.5
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

然后,在系统变量path的末尾添加: %CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_BIN_PATH%;%CUDA_SDK_LIB_PATH%;

1.3.3 重启计算机使得环境变量生效

1.3.4 验证cuda7.5已正确安装:

打开cmd,输入$ nvcc  -V,结果如下图:

2、安装配置MatConvNet

MatConvNet: CNNs for MATLAB

下载 ----- http://www.vlfeat.org/matconvnet/  可以下载最新版

2.1.安装MatConvNet

1、untar('http://www.vlfeat.org/matconvnet/download/matconvnet-1.0-beta20.tar.gz') 是下载安装包的过程,建议单独下载其ZIP包,解压后放在任意位置,运行程序的时候会通过vl_setupnn()自动添加路径到Matlab中。下载时最好使用浏览器内置的下载器,因为迅雷下载下来的是一个txt文件,还需要转换。

下载压缩包matconvnet-1.0-beta20.tar.gz解压后,在examples文件夹下,可以找到相应数据集的卷积网络进行训练、或者使用。 经典模型都有,主要有Lenet、Alex、NiN、Vgg-face、VGG-F/S/M/VD、GoogleNet等CNN模型。而且,在训练之前,程序会自动下载数据集,CIFA-10,MNIST。但ImageNet数据太大需要手动下载。

在MATLAB中,打开文件夹matconvnet里的MATLAB文件夹,如下图所示,找到vl_compilenn.m文件。

2.2.编译MatConvNet的CPU版本

设置matlab的C++编译器,运行mex -setup,  再提示信息中选择VS C++;

在安装根目录下找到 函数function vl_compilenn(varargin),直接运行,默认为即CPU模式下编译。

最后显示“ MEX  成功!!”; 此时可以看到根目录下的mex文件夹下出现编译后的xxx.mex64文件。

若不配置GPU,则配置就此结束!!!!! 可以到examples下进行试验~~~~~~~~

这里,run matlab/vl_compilenn是编译的过程,前提是要求matlab与编译器(VSc++)实现连接,如果没有可以使用mex -setup命令,设置matlab的C++编译器,提示MEX成功,才可以运行example中的示例。这个实际上就是配置Matconvnet的过程,只需要两句话:mex -setup;run matlab/vl_compilenn

2.3.配置CUDA 7.5

1. 之前已经安装好了,现在打开 cuda samples 文件夹下 Samples_vs2013.sln 分别在DEBUG 和Release X64下进行完整编译。编译过程如提示找不到”d3dx9.h”、”d3dx10.h”、”d3dx11.h”头文件,则百度下载   DXSDK_Jun10.exe并安装。之后再重新编译。  (可参考 http://blog.sina.com.cn/s/blog_534497fd0102vbu3.html)

2. 编译cuda7.5自带的samples:在C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.5目录下,用vs2013,打开Samples_vs2013.sln,在Release下,选中解决方案Samples_vs2013,重新生成解决方案,第一次编译会提示找不到”d3dx9.h”、”d3dx10.h”、”d3dx11.h”头文件,可从这里下载DXSDK_Jun10.exe,按照默认安装即可;然后重新打开Samples_vs2013,再编译即可,结果如下图:

       编译成功 后C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\bin\win64\Release和Debug目录下会生成很多文件(编译过程时间较长)
      3. 执行C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\bin\win64\Release目录下的deviceQuery.exe和bandwidthTest.exe: 如下图。运行其中的小程序,即可  查看GPU CUDA信息。PASS 为通过。

4. 安装cudnn-win64-v4.0/or-v3.0

(1)解压缩:会生成cuda/include、cuda/lib、cuda/bin三个目录;分别将cuda/include、cuda/lib、cuda/bin三个目录中的内容拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5对应的include、lib、bin目录下即可。

(2)将cudnn64_4.dll 文件拷贝到 ./matconvnet/Matlab/mex文件夹下即可。

2.4.编译MatConvNet的GPU版本

在CUDA安装完成之后,即可调用 nvcc编译器 编译MatConvNet的GPU版本。

找到 function vl_compilenn(varargin) ,这是编译函数。

设置GPU编译器: opts.enableGPU =true ,opts.cudaMethod  = 'nvcc' ; %意思就是调用NVIDIA compiler→ nvcc

注意:需要 将新的CUDA版本号‘7.5’添加到程序(即编译函数vl_complienn)中、供其查找CUDA路径。

编译完成后,运行cnn_cifa.m文件,运行前修改为GPU,不同版本修改为GPU的方式不同。在matconvnet-1.0-beta20中,修改cnn_cifa.m文件如下: opts.train.gpus = [1];指明使用GPU运行程序。

看到如下输出信息,说明成功。(这并不是我电脑的运行结果,这个显卡版本很不错了)

运行结果如下:

蓝色是训练错误率  绿色是测试错误率。

其中top1是前1命中错误率,top1是只让你猜一次;

top5 是前5命中错误率 ,top5是让你猜5次,只要这5次里面有一次正确,就算正确。

在这里运行cnn_cifa.m文件时,出现如下错误:

[plain] view plain copy  print?
  1. nvcc fatal   : Unsupported gpu architecture 'compute_21'

然而,因为某种原因,它对NVIDIA系列早期型号的显卡支持并不好。以现在Amazon上白菜价都能买到的GeForce GT 610为例,在打开GPU支持进行编译后,可能会出现如下的编译错误:

经过网上查资料了解,这其实是因为MatConvNet的GPU编译代码中的一个Bug所导致。对于早期的显卡型号,它仅支持十的整数倍的GPU体系代码。在上面的例子中,如果将'compute_21'置换成‘compute_20’,便可以正常的编译了。为此,我们需要将vl_compilenn.m文件中的一个函数进行如下的修改:

[plain]  view plain copy print ?
  1. % --------------------------------------------------------------------
  2. function cudaArch = get_cuda_arch(opts)
  3. % --------------------------------------------------------------------
  4. opts.verbose && fprintf('%s:\tCUDA: determining GPU compute capability (use the ''CudaArch'' option to override)\n', mfilename);
  5. try
  6. gpu_device = gpuDevice();
  7. arch_code = strrep(gpu_device.ComputeCapability, '.', '');
  8. % To fix the bug
  9. arch_code_temp = str2double(arch_code);
  10. arch_code_temp = floor(arch_code_temp/10)*10;
  11. arch_code = num2str(arch_code_temp);
  12. %
  13. cudaArch = ...
  14. sprintf('-gencode=arch=compute_%s,code=\\\"sm_%s,compute_%s\\\" ', ...
  15. arch_code, arch_code, arch_code) ;
  16. catch
  17. opts.verbose && fprintf(['%s:\tCUDA: cannot determine the capabilities of the installed GPU; ' ...
  18. 'falling back to default\n'], mfilename);
  19. cudaArch = opts.defCudaArch;
  20. end

如此一来,与GPU相关的代码就能正常编译了。不过需要注意的是,在编译时不要打开cuDNN的支持,否则在运行时,会因为编译和运行时GPU体系代码不一致,而导致程序异常结束。

所以,如果身边有闲置的机器但又苦于没有高端的GPU时,可以考虑购置一些低端的显卡。然后,用此方法编译、运行一些对GPU速度、内存需求不高的程序,以提高机器的利用率。

参考资料:

http://www.linuxidc.com/Linux/2016-12/138862.htm 64位Windows 7 安装配置CUDA7.5/8.0+cuDNN5.0图文详解

http://blog.csdn.net/zhjm07054115/article/details/49964597 Windows7 下编译 MatConvNet 和 CUDA7.5 
http://blog.csdn.net/raodotcong/article/details/58596841如何使用白菜价GPU运行基于MatConvNet的CNN程序

win7(低版本显卡GeForce 610M)配置MatConvNet相关推荐

  1. 低版本显卡驱动(GeForce 920M)安装CUDA与Pytorch

    15年的笔记本,配置特别低,最近安装CUDA和Tensorflow和Pytorch遇到好多问题,主要是一些版本问题.现在将这些问题的解决办法都记录下来,给后面的朋友提供一个参考. 首先,打开笔记本的设 ...

  2. Ubuntu16.04安装CUDA9.0,显卡为低版本,非RTX2060、RTX2070、RTX2080等

    RTX2060显卡,需要安装 CUDA10.2,低版本不兼容 低版本显卡,可以安装CUDA9.0 Ubuntu16.04 RTX2060 安装CUDA10.2 参考:https://blog.csdn ...

  3. 低端显卡 GeForce 930M 安装 Pytorch_GPU【Windows10】

    低端显卡 GeForce 930M 安装 Pytorch_GPU[Windows10] NVIDIA控制面板,查看显卡驱动版本 下载CUDA 9.0并安装 下载cuDNN并安装 Conda创建GPU环 ...

  4. w7计算机管理哪个是显卡,win7怎么看显卡配置以及win7怎么看电脑完整配置

    win7怎么看显卡配置 win7系统是目前最流行的操作系统,其使用习惯与以往的windows系列操作系统有很大的不同,至于显卡内内容的详细信息win7系统里也跟以前版本查找得不一样.下面我给大家分享w ...

  5. java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...

    在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...

  6. Safari浏览器低版本时候,只发option-CorsFilter配置

    跨域拦截配置,是个坑,使用 * ,对于低版本的safri浏览器是不行的. 当初配置CorsFilter,是为了解决跨域的问题,但是今天发现低版本的safri浏览器发不了请求.最后通过抓包工具,查看发送 ...

  7. 显卡服务器已停止响应,Win7电脑提示显卡驱动程序已停止响应并且已恢复如何解决?...

    最近很多用户在反映Win7电脑提示显卡驱动程序已停止响应并且已恢复,这是怎么回事呢?导致这种情况的原因有很多种,那么遇到这种情况该怎么解决呢?其实Win7提示显卡驱动程序已停止响应并且已恢复的解决方法 ...

  8. 研华安装Linux系统,在自带显卡GeForce RTX 2070的研华MIC-770工控机上安装Ubuntu18.

    在自带显卡GeForce RTX 2070的研华MIC-770工控机上安装Ubuntu18. 在自带显卡GeForce RTX 2070的研华MIC-770工控机上安装Ubuntu18.04及显卡驱动 ...

  9. 计算机配置太低,安装Win10系统电脑配置太低怎么办

    现在电脑更新换代都很快,几年前的主流电脑配置跟现在比起来就差了一大截.Win10系统电脑配置要求不高,但是还是有一些比较老的机子无法安装Win10.那么想要安装Win10系统电脑配置太低怎么办呢?下面 ...

最新文章

  1. jquery选择器的使用方式
  2. c语言 json 请求_怎么用C语言获取JSON中的数据?
  3. dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致...
  4. crontab 案例
  5. ElasticSearch之Centos7下安装
  6. SilverLight显示中文字(一)
  7. JAVA基本数据类型和引用数据类型的参数传递详解
  8. RabbitMQ之惰性队列(Lazy Queue)
  9. ansible常用基础命令整合
  10. python 判断时间是否大于6点_python - 在dataframe中,如何检查时间增量是否大于一分钟?_pandas_酷徒编程知识库...
  11. 东华理工大学arm试卷_ARM东华理工大学2015-2016试卷A
  12. “壕”无人性!黄金版iPhone 13 Pro售价27万元起
  13. php mime base64,base64_encode — 使用 MIME base64 对数据进行编码
  14. 谈家装安防防盗设备的重要性
  15. 001 - CMake 安装
  16. 源码下载地址及各类资源站点
  17. 多维数据库概述之一---多维数据库的选择
  18. 考研题目 第五章 数组和广义表
  19. 【工具】用PPT排版打印海报时图片分辨率问题
  20. Unity3d实现开机自启App

热门文章

  1. 计算机硬件维护实验报告,计算机硬件维护实验报告.doc
  2. OSPF部落首领选举大会
  3. SLS-日志服务分析查询
  4. @Autowired详解
  5. NC65主子表单据,删除失败
  6. Lambda表达式用法
  7. rollup.js使用
  8. SpringBoot 处理跨域请求
  9. RocketMQ源码级别面试题板块
  10. 解决Windows电脑点睡眠后仍在运行、风扇还在转的问题