Matlab:为神经网络的多个隐藏层创建输入和输出数据集

时间:2017-08-22 08:08:04

标签: matlab neural-network

虽然在Matlab中不推荐使用 newff ,但我试图为函数 y = x ^ 2 创建一个神经网络:

  • 1个输入图层
  • 1输出图层
  • 2个隐藏层,每层有4个神经元

代码如下(Sample3.m):

% providing inputs and outputs  
x=-10:0.1:10;
y=x.*x;

% creating 2 hidden layers with 4 neurons each
hidden_layer_l2=[4 2];

% tansig=transfer function for layer 1
% logsig=transfer function for layer 2
% purelim=transfer function for output layer
network_l2=newff(x,hidden_layer_l2,{'tansig' 'logsig' 'purelin'},'trainlm');
view(network_l2);
net_train_l2=train(network_l2,x,y);

% simulate the data
simulated_data_l2=sim(net_train_l2,x);
plot(x,y,x,simulated_data_l2,'x');

弹出以下错误:

Error using network/train (line 272)
Output data size does not match net.outputs{2}.size.
Error in Sample3 (line 40)
net_train_l2=train(network_l2,x,y);

我浏览了互联网并了解到我提供了x * 2矩阵以使其正常工作,目前我正在传递一个矢量。我是matlab和神经网络的新手,不知道如何制作正确的输入集和输出集(x和y)。

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:0)

% Create a Pattern Recognition Network

% net = patternnet(17);  % 1 hidden layer

net = patternnet([17,10]); % 2 hidden layers