首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用LeNet在Matlab上部署和使用MatCaffe

利用LeNet在Matlab上部署和使用MatCaffe
EN

Stack Overflow用户
提问于 2017-04-26 01:26:15
回答 1查看 359关注 0票数 0

我对MatCaffe有意见。我成功地在python中使用我自己的数据集(2种分类,0或1)训练了LeNet,并且现在尝试在Matlab上部署它。Net体系结构来自caffe/examples/mnist/lenet.prototxt。所有输入到网络中的图像总是返回1 (我尝试使用训练中的正负图像)。

下面是我的代码:

代码语言:javascript
复制
deployNet = 'lenet_deploy.prototxt';
caffeModel = 'weight.caffemodel';
caffe.set_mode_cpu();
net = caffe.Net(deployNet, caffeModel, 'test');
net.blobs('data').reshape([28 28 1 1]);
net.reshape();

patch_data = imread('cropped.jpg'); % already in greyscale
patch_data = imresize(patch_data, [28 28],'bilinear');
imshow(patch_data)

input_data = {patch_data};
scores = net.forward(input_data);

highest = max(scores{1});
disp(i);
disp(highest);

最高的总是返回1,即使是负面的图像。我试着在python上部署它,它工作得很好。我在猜测我处理输入的方式有问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-10 23:19:58

发现了问题。我忘了用训练尺度来增加图像的宽度和高度,因为Matlab是1索引和列大的,通常Matlab中的4个blob维度是宽度、高度、通道、数字和宽度是最快的维度。因此,只需再加2行代码:

代码语言:javascript
复制
deployNet = 'lenet_deploy.prototxt';
caffeModel = 'weight.caffemodel';
caffe.set_mode_cpu();
net = caffe.Net(deployNet, caffeModel, 'test');
net.blobs('data').reshape([28 28 1 1]);
net.reshape();

patch = imread('cropped.jpg'); % already in greyscale
patch = single(patch) * 0.00390625; % multiply with scale
patch = permute(patch, [2,1,3]); %permute width and height
input_data = {patch};
scores = net.forward(input_data);

highest = scores{1};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43623482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档