2011-01-17 16 views
0

こんにちは、私はどこかで、この情報を少しの情報で見つけました。 バックプロパゲーションニューラルネットワークコードであると考えられます。 しかし、それは重量とバイアスのようなものが欠けているようです。 は正しいコードですか?それは試験中にバックプロパゲーションニューラルネットワークですか? ありがとうニューラルネットワークのmatlabコードに関する質問

% --- Executes on button press in pushbutton6. 

    %~~~~~~~~~~~[L1 L2 1];first hidden layer,second & output layer~~~~~ 
    layer = [11 15 1]; 
    myepochs = 30; 
    attemption = 1; %i; 
    mytfn = {'tansig' 'tansig' 'purelin'}; 

    %~~~~~~load data~~~~~~~~~~~~~~~~~~~~~~~ 
    m = xlsread('D:\MATLAB\datatrain.csv'); 

    %~~~~~~convert the data in Matrix form~~~~ 
    [row,col] = size(m);   

    P = m(1:row,1:10)'; 


    T1 = m(1:row, col)'; % target data for training...last column 


    net = newff([minmax(P)],layer,mytfn,'trainlm'); %nnet 
    net.trainParam.epochs = myepochs; % how many time newff will repeat the training 
    net.trainParam.showWindow = true; 
    net.trainParam.showCommandLine = true; 
    net = train(net,P,T1); % start training newff with input P and target T1 

    Y = sim(net,P); % training 

    save 'net7' net; 


    % --- Executes on button press in pushbutton4. 

    %~~~~~~load data~~~~~~~~~~~~~~~~~~~~~~~ 
    mt = xlsread('D:\MATLAB\datatest.csv'); 

    %~~~~~~convert the data in Matrix form~~~~ 
    [row1,col1] = size(mt);  
    Pt= mt(1:row1,1:10)'; 
    Tt = mt(1:row1, col1)'; 

    load 'net7' -mat; 
    Yt= sim(net,Pt); 

    %~~~~~~~final result of the neural network~~~~~~~~ 
    [r,c]=size(Yt); 
    result=Yt(c); 


    if result>0.7 
     error=1-result; 
     set(handles.edit39,'String','yes') 
     set(handles.edit40,'String',num2str(error)) 
     set(handles.edit41,'String','Completed') 
     data1=[num2str(result) ]; 
     fid = fopen('D:\MATLAB\record.csv','a+'); 
     fprintf(fid,[data1,'\n']); 
     fclose(fid); 


    else 
     set(handles.edit39,'String','no') 
     set(handles.edit40,'String',num2str(result)) 
     set(handles.edit41,'String','Completed') 
     data1=[num2str(result) ];   
     fid = fopen('D:\MATLAB\record.csv','a+'); 
     fprintf(fid,[data1,'\n']); 
     fclose(fid); 
    end  

答えて

0

コードは正しいです。ニューラルネットワークの重みとバイアスはnet構造体に格納され、net.IWnet.LW構造体を介してアクセスできます。バイアスはnet.bの内部に格納されます。このコードでは、入力ネットワークPとターゲットT1を使用してネットワークをトレーニングし、トレーニング中に使用されるトレーニング、テストおよび検証サブセットでそれらを分割します。トレーニング手順の詳細については、ドキュメントを参照してください。

+0

私はトレーニングとテストについて理解しています。私はGUIを使用して画像認識システムをやっています。 traindata.csvにトレーニングストアの画像パラメータが既に300あるとしましょう。それから私は100イメージをテストしたい。私は何をしたのですか、私は1画像をロードし、このコードを実行し、100画像がテストされるまでそれを繰り返します。それをしてもいいですか?それが正しいか?私はそれがテスト中の訓練ニューラルネットワークのように見えるので、それについては疑問があります。出来ますか? – user562873

+0

私は正しく理解しているかどうかはわかりません。 Traindata.csvのようなものがあれば、同様にtestdata.csvのようなファイルを持つことができますか?次に、あなたは新しいテストデータであなたの訓練されたネットワークをテストするために関数simを使用することができます... –

+0

私はこの認識システムを実装するためにguiを使用しています。すべての電車のデータがデータ列ファイルに保存された後、このコードを使用して画像をテストします。私が1つのイメージをテストするとき、答えはイエスです。しかし、同じ画像をもう一度試してみると、答えは「いいえ」です。なぜ同じ画像が再びテストされたときに変化し続けるのですか? – user562873