问题: 使用MatCaffe测试MNIST分类时,我的准确度非常低(10%)。
背景 我使用lenet_train_test和lenet_solver训练了MNIST数字,并在caffe基本界面中观察到~99%的测试精度。我保存了caffmodel并希望使用MatCaffe interface验证准确性。因此,我创建了一个 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);
我想知道我在代码中遗漏了什么?