【问题标题】:using caffemodels in matlab在 matlab 中使用 caffemodels
【发布时间】:2018-11-30 00:36:53
【问题描述】:

这是我第一次尝试在 matlab 中使用 caffemodels,所以我有点迷茫 - 我已经从这个网站下载了一个 caffemodel (CNN):https://data.vision.ee.ethz.ch/cvl/rrothe/imdb-wiki/,我现在只是想用它来做一个估计图像的年龄。到目前为止,我的尝试看起来像这样:

net = importCaffeNetwork('prot.prototxt', 'dex_imdb_wiki.caffemodel');

%% read image
image2 = imread('image2.jpg');
image2 = imresize(im2double(image2),[224 224]);

net(image2)

net 是一个有 41 层的 CNN,它在第一层有一个大小为 [224 224 3] 的输入。当我运行“net(image2)”时,我收到错误“数组索引必须是正整数或逻辑值”。

我根本不知道如何解决这个问题..

非常感谢任何帮助。

【问题讨论】:

  • 我认为你需要这个:classify(net,image2);
  • 哦,是的 - 现在我至少得到了一个结果 - 但无论我输入什么图像,我都会得到 ypred = class22 :( 我猜它可能与这个“年龄估计”有关输出层有 101 个神经元(0-100 年,每年一个)。要获得预测年龄,您需要在 softmax 归一化输出概率上取期望值“ - 但它仍然没有意义我认为他们都应该从 class22 开始 - 我不太明白他们告诉我要做什么
  • 您是否尝试过使用您确信会提供除class22 之外的其他内容的图片?
  • 是的,我尝试使用真正的老人和孩子的图像
  • 天哪,就是这样 - 非常感谢! :D 我不太记得我为什么这样做了

标签: matlab neural-network caffe


【解决方案1】:

NN Toolbox 中的classify 就是您要查找的内容。 出于某种原因,您的 caffe 模型不适用于双类图像。所以总的来说,您需要以下内容:

net = importCaffeNetwork('prot.prototxt', 'dex_imdb_wiki.caffemodel');
image2 = imread('image2.jpg');
image2 = imresize(image2, [224 224]);
age_pred = classify(net, image2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多