0

是否可以使 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);

我做错了什么?

4

1 回答 1

0

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

于 2016-09-02T14:02:30.887 回答