2017-05-20 15 views
-2

データセットがあり、Radial Basis Networkをトレーニングする必要があります。 Pのサイズは258x420、Tのサイズは1x420です。スクリプトを実行すると(下記)、訓練は283エポックに達すると停止します。次に、コマンドウィンドウにいくつかのエラーを表示します。私が何をしなければならないか教えてくれませんか?問題はどこだ?Matlabのnewrb関数のエラー

??? ==>を使用しているエラー ハンドルが無効です。

==> Dでエラー:\ MathLab6.5 \ツールボックス\ NNET \ NNET \ plotperf.m ライン133 ==>セット(ud.TrainLine(4)、...

エラーのオン==> D:\ MathLab6.5 \ツールボックス\ NNET \ NNET \ newrb.m(designrb) ラインで210 ==> flag_stop = plotperf(TR、例えば、 'NEWRB'、K);

エラーでオンライン130 ==> [w1、b1、w2、b2、tr] = designrb(p、t、目標、スプレッド、mn、 df);

==> D:\ MathLab6.5 \ work \ RB.mのエラー オンライン14 = => net = newrb(P、T、例えば、sc、me、df);

clear all 
nntwarn off 
load arrhytmia6 

df = 10; % frequency of progress displays (in neurons). 
me = 250; %for % maximum number of neurons. 
eg = 0.05; % sum-squared error goal. 
sc = 0.02; % spread constant radial basis functions. 

for i=1:length(P) 
for sc=[0.1:0.1:5], 
    [w1,b1,w2,b2,nr,err] = solverb(P,T,[df me eg sc]); 
    a = simurb(P,w1,b1,w2,b2); 
    net=newrb(P,T,eg,sc,me,df); 
    a=sim(net,P); 

    [T' a' (T-a)' (abs(T-a)>=0.5)'] 
    (1-sum(abs(T-a)>=0.5)/length(P))*100 
    plot([1:length(T)],T,'r',[1:length(T)],a,'g') 
    classification_correctness_ratio(i)=(1-sum(abs(T-a)>=0.5)/length(P))*100 ; 
    i=i+1; 
end 
end 

Matlabのバージョンは6.5.1です。

データセットファイル: http://s000.tinyupload.com/index.php?file_id=99806363598467189006

答えて

1

を明確にするためには、問題は私の場合は訓練の183のエポック後、エポックの数が多いために起こります。

その後、SSEは小さくなり(約$ 10^{ - 25} $)、ある時点では0になるので、他の結果はおそらくNaNになります。

% PROGRESS 
tr.perf(k+1) = sse; 

そして、この値はplotperf.mその後で使用されています:だから、基本的には非使用してプロットを描きたい

set(ud.TrainLine(4),... 
'Xdata',tr.epoch(ind),... 
'Ydata',tr.perf(ind),... 
'linewidth',2,'color','b'); 

newrb.mあなたが割り当てられていて

数値1を期待すると、数字の数値はsseになります。そのため、Matlabはグラフィックハンドラの問題について不満を抱いています。

これが発生する前にネットワークのトレーニングを中止する必要があります(たとえば、約epoch = 100)。