Matconvnet 的安装以及使用

matconvnet是matlab上进行CNN的框架。本文介绍windows下如何安装以及使用它对pre-trained的网络进行finetuning. 这里以win10为例,cuda版本为7.5,cudnn的版本为v3.fine tune的网络VGG-19.
一.matconvnet 安装
1.Precondition: 如果是编译cpu版本的,只需要matlab安装了mex就可以(c与matlab的混编 ,在matlab的commander里输入mex -setup C++搞定)。
如果是编译GPU的话,首先是需要GPU(其实所有独立显卡都可以),然后安装好cuda用于cu文件的编译;如果想使用nvidia正对CNN的加速需要下载cudnn。
2.安装
下载完自己需要的matconvnet版本之后就可以在matlab编译安装了。这里只介绍GPU的安装。
2.1编译:
以matconvnet的目录作为当前目录,添加matlab路径到查找目录,然后将cudnn文件夹复制到当前目录,整个目录结构如下:
这里写图片描述
其中finetune目录是我后面finetune用到的,这里主要注意把cudnn(图中是cuda)复制到当前目录。
然后既可以按照官网的命令进行编译:
gpuDevice()可以查看你的显卡信息,同时可以看cuda toolkit的版本。

vl_compilenn('enableGpu',true,'cudaMethod','nvcc','cudaRoot','C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v7.5','enableCudnn',true,'cudnnRoot','cuda')

这里需要把cudaRoot后面的路径换做你自己安装的cuda 路径,cudnnRoot后的路径换为你cudnn的路径。同时不用cudnn的话将后面两项去掉即可。如果在编译cudnn版本的时候提示找不到cudnn.h文件,那多数是路径不对,此时一个有效的办法是将cudnn里面的子目录的文件copy到cuda安装路径(上条命令中的cudaRoot参数)下的对应目录下。
下面就可以进行测试了:
vl_testnn(‘gpu’,true)
这里有个问题就是编译的时候可能会出其他错误,如果是说某个函数的参数不对(too few arguments)这种错误,很有可能是版本问题引起的,建议更换了cudnn版本后重新编译。或者先不用cudnn看是否编译成功。
还遇到一个问题,类似与error using mex cc: unsupported gpu architecture ‘compute_52’,这是因为这个值只能取10倍数,在vl_compilenn里面的cudaArch函数里面将arch_code固定为你自己的GPU的计算能力即可(取最接近的10的倍数,要用字符格式),如下:

function cudaArch = get_cuda_arch(opts)
% --------------------------------------------------------------------
opts.verbose && fprintf('%s:\tCUDA: determining GPU compute capability (use the ''CudaArch'' option to override)\n', mfilename);
try
  gpu_device = gpuDevice();
  arch_code = strrep(gpu_device.ComputeCapability, '.', '');
  arch_code = '50'%自己添加的
  cudaArch = ...
      sprintf('-gencode=arch=compute_%s,code=\\\"sm_%s,compute_%s\\\" ', ...
              arch_code, arch_code, arch_code) ;
catch
  opts.verbose && fprintf(['%s:\tCUDA: cannot determine the capabilities of the installed GPU;' ...
                      
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值