2016-06-04 7 views
0

Ist es möglich, MNIST Beispiel in matconvnet für zwei Klassen statt 10 zu arbeiten? Ich habe die cnn_mnist_init.m Datei die folgende erzeugen Merkmalsvektoren für zwei Klassen zu sein:MatConvNet MNIST Netzwerk für zwei Klassen

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

Aber wenn ich cnn_train ich die folgende Fehlermeldung ausgeführt haben:

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); 

Was ich falsch gemacht habe?

Antwort

0

Der Fehler, den Sie in err (2,1) erhalten, wird wahrscheinlich verursacht, weil Ihr Fehlervektor eine falsche Dimension hat. err (2,1) ist der Fehler von falsch klassifizierten 5 Klassen Sie haben nur zwei Klassen. Überprüfen Sie die Größe des Tensors, den Sie in softmax einspeisen. Er sollte die Dimension [1,1,2 = Anzahl der Klassen, Losgröße]

haben
Verwandte Themen