神經網絡輸出層多個神經元

 由於matlab升級,已經不能想以前一樣直接在newff函數裏面規定好隱含層多少個,或者幾層,還可以有多個神經元的輸出層。改版後需要輸出層變成矩陣的形式,神經網絡工具箱可以自動識別輸出層有幾個神經元。詳細代碼如何下:

num=xlsread('data_shengzheng.xlsx','Sheet1','A2:I11');

input_train=num(1:9,1:8)';
output_train=num(1:9,9)';
input_test=num(10,1:8)';


%歸一化處理

[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%構造9個神經元的輸出層
for i= 1:9
     switch outputn(i)
         case 1
             
             outputn(i,:)=[1 0 0 0 0 0 0 0 0];
         case 2
             outputn(i,:)=[0 1 0 0 0 0 0 0 0];
         case 3
             
             outputn(i,:)=[0 0 1 0 0 0 0 0 0];
         case 4
             outputn(i,:)=[0 0 0 1 0 0 0 0 0];
         case 5
             
             outputn(i,:)=[0 0 0 0 1 0 0 0 0];
         case 6
             outputn(i,:)=[0 0 0 0 0 1 0 0 0];
         case 7
             
             outputn(i,:)=[0 0 0 0 0 0 1 0 0];
         case 8
             outputn(i,:)=[0 0 0 0 0 0 0 1 0];
         case 9
             outputn(i,:)=[0 0 0 0 0 0 0 0 1];
     end

    
end
net=newff(inputn,outputn,8);

net.trainParam.epochs=100;%迭代次數
net.trainParam.lr=0.1;%學習率
net.trainParam.goal=0.00004;%誤差平方和

net=train(net,inputn,outputn);%網絡訓練



data_shengzheng.xlsx數據內容爲:

 

結果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章