两个 MatConvNet MNIST 网络 类

MatConvNet MNIST network for two classes

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

我做错了什么?

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