【问题标题】:input size error in neural network programming by MATLABMATLAB 神经网络编程中的输入大小误差
【发布时间】:2014-04-23 05:11:15
【问题描述】:

这是我的代码:

p = input1;
t1 = output1;
net = feedforwardnet(10, 'trainrp');
net.trainParam.epochs = 1000;
net.trainParam.goal = 0.0005;
net = train(net, p, t1); 
y1 = sim(net, p);
p = input2;
t2 = tar;
y2 = sim(net, p);

但是,我收到此错误:

error using bsxfun
Non-singleton dimensions of the two input arrays must match each other.

Error in nnMATLAB.pc (line 24)
pi = bsxfun(@minus,pi,settings.xoffset);

Error in nncalc.preCalcData (line 20)
data.Pc = calcMode.pc(net,data.X,data.Xi,data.Q,data.TS,calcHints);

Error in nncalc.setup1 (line 118)
calcData =

nncalc.preCalcData(matlabMode,matlabHints,net,data,doPc,doPd,calcHints.doFlattenTime);

Error in network/sim (line 283)
[calcMode,calcNet,calcData,calcHints,~,resourceText] = nncalc.setup1(calcMode,net,data);

我想创建一个神经网络,输入 1 作为输入 310 x 24 矩阵,输出 1 作为输出,155 x 24 矩阵。

另外,我将使用 input1 和 output1 训练网络

在这个训练过程之后,我将使用 input2 作为测试数据,我想使用上面由 input1 & output1 训练的网络得到一个模拟结果。

总之,我想用 input1 和 output1 训练我自己的网络,我想用 input2 得到我的模拟结果。

我认为这些错误是基于训练部分和测试部分之间的输入大小差异。

我该如何解决这个问题?我应该运行额外的进程吗??

我正在寻找您的友好答案。

谢谢。

【问题讨论】:

    标签: matlab neural-network simulation training-data


    【解决方案1】:

    训练和测试的输入数量必须相同。

    对于训练:输入必须是 NxQ 矩阵,其中 N 是输入元素的数量,M 是样本的数量。目标必须是 MxQ 矩阵,其中 M 是输出元素的数量,Q 与输入相同。

    那么对于测试:输入矩阵必须是NxQ2,其中N与训练时相同,但样本数量Q2可以任意。例如,对于单个向量 Q2 等于 1。那么输出将是 MxQ2,其中 M 与用于训练的输出数量相同,Q2 与测试输入数据的向量数量相同。

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 2011-06-02
      • 2018-07-10
      • 1970-01-01
      • 2016-10-21
      • 2014-02-13
      • 1970-01-01
      • 2012-03-15
      • 2015-12-21
      相关资源
      最近更新 更多