训练神经网络时出错:输入和目标具有不同数量的样本

时间:2014-03-25 15:58:01

标签: matlab neural-network training-data

我正在尝试编码神经网络进行人脸检测 我输入为(1372*4096),目标为(1372*1)。输入是图像,每个图像连续表示。因此,我有1372张图像 对于每个图像,我想输出一个值:如果图像是面部,则输出1;如果不是面部,则输出-1

我写了这段代码:

[input target]=LoadImage();

net=newff(input,target,[10 5 1],{'tansig','tansig','purelin'}, 'trainrp');

net.trainParam.goal=1e-5;
net.trainParam.epochs=1000;
net.trainParam.lr=0.5;
net.trainParam.show=10;

% start training
net=train(net,input,target);

但是我收到了这个错误:

Error using trainrp (line 107)
Inputs and targets have different numbers of samples.

Error in network/train (line 106)
[net,tr] = feval(net.trainFcn,net,X,T,Xi,Ai,EW,net.trainParam);

Error in train1 (line 12)
net=train(net,d,out_d);

我该怎么做才能解决此错误?

1 个答案:

答案 0 :(得分:2)

对于神经网络工具箱,每个输入必须是一个矢量,因此您将拥有一个矩阵,其列数Q与不同的图像一样多。那么目标应该是1xQ。所以看起来你需要重塑输入。

我建议使用新功能FEEDFORWARDNET而不是过时(但仍在工作)NEWFF。