1

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

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

4

1 回答 1

2

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

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

于 2014-03-26T02:09:08.583 回答