2016-06-04 4 views
0

matconvnet에서 MNIST 예제를 10 대신 2 개의 클래스에서 작동하도록 만들 수 있습니까? 나는 두 클래스의 특징 벡터를 생성하기 위해 다음 될 수있는 cnn_mnist_init.m 파일 변경 :두 개의 클래스를위한 MatConvNet MNIST 네트워크

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

내가 뭘 잘못했는지?

답변

0

오류 벡터의 치수가 잘못되어 오류가 발생했습니다 (2,1). err (2,1)은 클래스가 두 개 밖에없는 잘못된 클래스 5 개 클래스의 오류입니다. softmax로 공급하는 텐서의 크기를 확인하십시오. 치수는 [1,1,2 = 클래스 수, 배치 크기]

이어야합니다.