https://github.com/vlfeat/matconvnet/issues/34

 

 

StevenLOL commented on Jan 1 2015

Hi,

After run cnn_mnist.m, I have few net-epoch-n.mat models.

To predict one image on mnist , following the example in http://www.vlfeat.org/matconvnet/pretrained

When calling

net=load('./data/mnist-baseline/net-epoch-5.mat');
res=vl_simplenn(net.net, im); % im is just one mnist image whose size is 28*28

I got the error:

Error using vl_nnsoftmaxloss (line 42) Assertion failed.
Error in vl_simplenn (line 164)
res(i+1).x = vl_nnsoftmaxloss(res(i).x, l.class) ;

Contributor
lenck commented on Jan 2 2015

Hi, when you train a model, as a last layer there is usually the softmaxloss which is a softmax followed by logistic loss - the loss which is being optimized. But in order to compute the loss, it needs the ground truth in net.layers{end}.class which is passed as the second parameter in vl_simplenn to vl_nnsoftmaxloss.

However, in general when you want to obtain only class probabilities, you simply change the last layer type to:

net.net.layers{end}.type = 'softmax';

And now your call of vl_simplenn should work...

Thanks, the best CNN toolkit ever.

Posted by uniqueone
,