MATLAB神经网络编程中的输入大小误差

时间:2014-03-17 19:40:13

标签: matlab neural-network simulation training-data

这是我的代码:

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);

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

另外,我将使用input1& amp;输出1

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

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

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

我该如何解决这个问题?我应该运行其他流程吗?

我正在寻找你的答复。

谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

然后进行测试:输入矩阵必须是NxQ2,其中N与训练相同,但样本数Q2可以是您想要的任何数量。例如,对于单个矢量Q2等于1.输出将为MxQ2,其中M与用于训练的输出数相同,Q2与测试输入数据的矢量数相同。