神经网络输出层多个神经元

 由于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数据内容为:

神经网络输出层多个神经元_第1张图片

 

结果如下:

神经网络输出层多个神经元_第2张图片

你可能感兴趣的:(matlab)