神经网络训练中的误差:输入和目标的样本数量不同



我正在尝试为面部检测编码神经网络。
输入是(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);

我应该怎么做来修复这个错误?

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

我建议使用新的FEEDFORWARDNET函数,而不是过时的(但仍然有效)NEWFF函数。

最新更新