问题: 使用 MatCaffe 测试 MNIST 分类时,我的准确率非常低 (10%)。
背景 我使用lenet_train_test和lenet_solver训练了 MNIST 数字,并在 caffe 基本界面中观察到了约 99% 的测试准确度。我保存了 caffmodel 并想使用MatCaffe 接口验证准确性。因此,我创建了一个deploy.prototxt文件(使用lenet_train_test),批量大小为 10000(等于测试图像的数量)。我还将 MNIST 测试图像和标签保存在单个 mat 文件中。我的 Matlab 代码如下:
%% Load Data and Labels
load('mnist_test_lmdb.mat')
I = infoData.imgData; % All images
true_labels = infoData.labelInfo; % All labels
% Model deployment file and weights
modelName = 'lenet_deploy.prototxt';
modelWeight = 'lenet_iter_10000.caffemodel';
% Set-up net
caffe.set_device(1);
caffe.set_mode_gpu();
net = caffe.Net(modelName, modelWeight, 'test');
% Preprocess images
scale= 0.00390625;
J = single(I) * scale;
J = reshape(J, size(J,1), size(J,2), 1, size(J,3));
% Run Network
net.forward({J});
probs = net.blobs('prob').get_data()';
% Get predicted labels
[~, pred_labels] = max(probs, [], 2);
pred_labels = pred_labels' - 1; % class label begins from 0
accuracy = sum(pred_labels(:,1)==true_labels(:,1))/size(true_labels,1);
我想知道我是否在代码中遗漏了什么?