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



虽然newff用法在 Matlab 中被弃用,但我正在尝试为函数y=x^2创建一个神经网络:

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

代码如下(示例3.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(。

任何帮助将不胜感激!

% Create a Pattern Recognition Network
% net = patternnet(17);  % 1 hidden layer
net = patternnet([17,10]); % 2 hidden layers

最新更新