【机器学习】MatConvNet的一些神坑

xiaoxiao2021-02-28  20

最近在做机器学习作业,内容是MatConvNet的操作,内容是用 1. pre-trained模型跑几个demo 2. gpu模式训练模型

遇到了几个神坑,在此备注与说明一下。 先说一下电脑配置以及需要的软件

win7 64位 matlab 2016a GPU nvidia gt 650m VS 2013 matconvnet版本 1.0beta20

以上版本的对应关系是经过验证的,能够跑出来结果的。需要注意以下几个版本匹配的问题,如果版本不匹配,啥也别说了,直接重装吧 1. 本试验要求使用c++编译器,matlab中mex -setup 中推荐mingw,这个虽然可以用,但在运行 run matlab/vl_compilenn 可能会遇到找不到cl.exe的问题,所以推荐直接安装VS2013版。 2. 通过gpudevice命令可以查看电脑要求的gpu-cuda版本,反馈结果中对应一个ToolkitVersion: 7.5000 这时候直接到官网下载对应的cuda就可以 3. CUDA7.5对应VS2013版本,这个是不能变的,如果你已经安装更高版本的VS,在CUDA的安装过程中提示找不到符合要求的VS 4. matlab2016a是对应7.5的版本 5. 跑demo的时候请提前把mat文件下下来,并把官网guickstart的所有关于下载的命令全部注释掉,如下所示

run matlab/vl_compilenn ; % Download a pre-trained CNN from the web (needed once). % urlwrite(... % 'http://www.vlfeat.org/matconvnet/models/imagenet-vgg-f.mat', ... % 'imagenet-vgg-f.mat') ; % Setup MatConvNet. run matlab/vl_setupnn ; % Load a model and upgrade it to MatConvNet current version. net = load('imagenet-vgg-f.mat') ; net = vl_simplenn_tidy(net) ; % Obtain and preprocess an image. im = imread('peppers.png') ; im_ = single(im) ; % note: 255 range im_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ; im_ = im_ - net.meta.normalization.averageImage ; % Run the CNN. res = vl_simplenn(net, im_) ; % Show the classification result. scores = squeeze(gather(res(end).x)) ; [bestScore, best] = max(scores) ; figure(1) ; clf ; imagesc(im) ; title(sprintf('%s (%d), score %.3f',... net.meta.classes.description{best}, best, bestScore)) ;
转载请注明原文地址: https://www.6miu.com/read-2595567.html

最新回复(0)