如何在Matlab中解决有关神经网络训练的输出数据大小错误?

时间:2012-04-27 10:53:32

标签: matlab neural-network

我的输入文件包含(17x127)数据(Force)和目标文件(3x127)(True Stress)。

我编写了以下用于训练神经网络的代码:

p=Force;
t=T_Stress;

net =newff(minmax(p),[10,1],{'tansig','purelin'},'trainlm');

net.trainParam.lr = .05;        %Learning Rate
net.trainParam.epochs = 300;    %Max Ephocs
net.trainParam.goal = 1e-5;     %Training Goal in Mean Sqared Error
net.trainParam.show = 50;       %# of ephocs in display

[net,tr1] = train(net,p,t);
o1 = sim(net,p)

但是我收到以下错误:

  

???使用==>时出错trainlm at 109输出数据大小不匹配   net.outputs {2} .size。

     

==>中的错误network.train at 107

     

[net,tr] = feval(net.trainFcn,net,X,T,Xi,Ai,EW,net.trainParam);

如何解决此错误?

3 个答案:

答案 0 :(得分:0)

尝试提供与" trainlm"相关的训练参数。通过寻找" trainlm"在Matlab帮助

答案 1 :(得分:0)

通过使用参数[10,1]调用newff,您创建了一个神经网络,隐藏层上有10个神经元,输出层上有1个神经元。 这与您使用的输出数量不匹配。 (3x127) 因此,要么更改newff调用,要么使用其他训练数据集。

答案 2 :(得分:0)

如上所述评论"

  

通过使用参数[10,1]调用newff,您创建了一个神经元   网络中隐藏层上有10个神经元,输出层上有1个神经元

"您将输出图层的值保持为3,因为您有三个目标。命令如下:

net =newff(minmax(p),[10,3],{'tansig','purelin'},'trainlm');