MatConvNet MNIST网络为两类

时间:2016-06-04 14:47:21

标签: matlab deep-learning mnist

是否有可能使matconvnet中的MNIST示例适用于两个类而不是10个?我将cnn_mnist_init.m文件更改为以下内容以生成两个类的特征向量:

net.layers{end+1} = struct('type', 'conv', ...
                   'weights', {{f*randn(1,1,500,2, 'single'), zeros(1,2,'single')}}, ...
                   'stride', 1, ...
                   'pad', 0) ;

但是当我运行cnn_train时出现以下错误:

Error in cnn_train>error_multiclass (line 222)
err(2,1) = sum(sum(sum(min(error(:,:,1:5,:),[],3)))) ;

Error in cnn_train>process_epoch (line 302)
error = sum([error, [...

Error in cnn_train (line 153)
[net, stats.train] = process_epoch(opts, getBatch, epoch, train, learningRate, imdb, net) ;

Error in original_image (line 40)
[net, info] = cnn_train(fold, net, imdb, @getBatch, ...

Error in main_original (line 13)
[imdb, net, info] = original_image(fold);

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您在错误(2,1)中遇到的错误可能是由于错误向量的维度错误引起的。错误(2,1)是错误分类的5个类的错误,你只有两个类。检查你输入softmax的张量大小它应该有维度[1,1,2 =类数,批量大小]