【问题标题】:How can I resolve output data size error about neural network training in Matlab?如何解决 Matlab 中神经网络训练的输出数据大小错误?
【发布时间】:2016-09-24 14:43:41
【问题描述】:

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

我该如何解决这个错误?

【问题讨论】:

    标签: matlab neural-network


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        如上评论“

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

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

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

        【讨论】:

          猜你喜欢
          • 2012-03-15
          • 2010-11-20
          • 1970-01-01
          • 2015-08-13
          • 2015-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-21
          相关资源
          最近更新 更多