2017-03-25 9 views
1

私はMATLABを使ってニューラルネットワークを学習しています。私は、特徴抽出のためにPCAを使用する顔認識プログラムと分類のためのフィードフォワードニューラルネットワークを実装しようとしています。MATLABのニューラルネットワークはトレーニングに失敗します

トレーニングセットに3人の人がいます。画像は 'data'ディレクトリに保存されています。

私は個人ごとに一つのネットワークを使用しています、と私は私のトレーニングセットのすべての画像と、各ネットワークを訓練、私のプロジェクトのためのコードは以下の通りである。

dirs = dir('data'); 
size = numel(dirs); 
eigenVecs = []; 
% a neural network for each individual 
net1 = feedforwardnet(10); 
net2 = feedforwardnet(10); 
net3 = feedforwardnet(10); 

% extract eigen vectors and prepare the input of the NN 
for i= 3:size 
    eigenVecs{i-2} = eigenFaces(dirs(i).name); 
end 
trainSet= cell2mat(eigenVecs'); % 27X1024 double 

% set the target for each NN, and then train it. 
T = [1 1 1 1 1 1 1 1 1 ... 
    0 0 0 0 0 0 0 0 0 ... 
    0 0 0 0 0 0 0 0 0]; 
train(net1, trainSet', T); 
T = [0 0 0 0 0 0 0 0 0 ... 
    1 1 1 1 1 1 1 1 1 ... 
    0 0 0 0 0 0 0 0 0]; 
train(net2, trainSet', T); 
T = [0 0 0 0 0 0 0 0 0 ... 
    0 0 0 0 0 0 0 0 0 ... 
    1 1 1 1 1 1 1 1 1]; 
train(net3, trainSet', T); 

ネットワークを訓練し終えた後、私はこのパネルを得る:

nntraintool panel

**私はこれらの数字は何を意味するのか理解できなかったので、誰もが、私にはパネルの進捗部分を説明することができれば。 **

ネットワークを訓練した後、私は以下を使用してネットワークをテストしてみてください:

Lは、私が得た結果は、この1X1024ベクトルである私のセットからのサンプルです
sim(net1, L) 

Empty matrix: 0-by-1024 

私のアプローチは、ニューラルネットワークを間違ってトレーニングするのですか?このプログラムを修正するにはどうすればよいですか?

は、(それがans変数に保存します)コード

train(net1, trainSet', T); 

net1変数に訓練されたネットワークを保存していないあなたに

答えて

0

に感謝します。これがsimの結果が空である理由です:net1に訓練されたネットワークはありません。あなたは訓練されたネットワークを自分で保存する必要があります。

net1= train(net1, trainSet', T); 
+0

は私が空行列に直面していた問題を修正するように見えるあなたの答え、のためにあなたをとても感謝し、あなたは私のためにパフォーマンスのセクションで異なるパラメータを詳しく説明してください可能性私は添付した写真の?私はそれらのパラメータを理解したいです。ありがとうございます –

+0

https://www.mathworks.com/help/nnet/ug/train-and-apply-multilayer-neural-networks.htmlに説明があります。また、muパラメータの説明については、https://www.mathworks.com/help/nnet/ref/trainlm.htmlを参照してください。 – AVK

関連する問題