Matlab 神经网络训练中的错误:输入和目标具有不同的样本数

Matlab 神经网络训练中的错误:输入和目标具有不同的样本数,matlab,neural-network,training-data,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.trainPara

我正在尝试编码用于人脸检测的神经网络。
我的输入为(
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。

注意,我使用的是MATLAB R2012aso,如果我有1372个图像,每个图像是64*64,为了将其作为向量,我将4096*1372矩阵作为输入,1*1372作为输出,这是正确的吗?**在训练时,输入的神经元数量应该是1372,图像的数量是多少?或者应该是4096,每个图像中的元素数**