0

matconvnet の MNIST の例を 10 クラスではなく 2 クラスで動作させることは可能ですか? cnn_mnist_init.m ファイルを次のように変更して、2 つのクラスの特徴ベクトルを生成しました。

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) は、2 つのクラスしかない 5 つのクラスを誤って分類したエラーです。ソフトマックスにフィードするテンソルのサイズを確認してください。次元は [1,1,2= クラス数、バッチ サイズ] である必要があります。

于 2016-09-02T14:02:30.887 に答える