1

我有一个包含 (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)

但是我收到以下错误:

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

==> network.train 在 107 处出错

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

如何解决此错误?

4

3 回答 3

0

尝试通过在Matlab帮助中寻找“trainlm”给出与“trainlm”训练函数相关的训练参数

于 2013-02-01T11:01:30.580 回答
0

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

于 2013-05-01T14:37:11.247 回答
0

如上评论“

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

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

net =newff(minmax(p),[10,3],{'tansig','purelin'},'trainlm');
于 2016-09-24T06:38:19.553 回答