MATLAB神经网络工具箱:使用trainlm时出错

MATLAB神经网络工具箱:使用trainlm时出错,matlab,lpr,nntool,Matlab,Lpr,Nntool,我有一个90×8的数据集,我从90个字符的图像(即数字1-9)中提取特征(每10×10个单元格加1)。每行代表一个图像。 我尝试使用以下代码来训练神经网络并识别新的输入图像(包括1到9之间的数字): 之后,我想使用以下内容,使用经过训练的网络识别新图像。m是一个也已被特征提取的图像字符 [a,m]=max(sim(net,m)); disp(b); 我遇到以下错误,我不知道如何解决: 使用trainlm时出错(第109行) 输入和目标具有不同数量的样本 网络/列车(106号线)错误[net,t

我有一个90×8的数据集,我从90个字符的图像(即数字1-9)中提取特征(每10×10个单元格加1)。每行代表一个图像。 我尝试使用以下代码来训练神经网络并识别新的输入图像(包括1到9之间的数字):

之后,我想使用以下内容,使用经过训练的网络识别新图像。m是一个也已被特征提取的图像字符

[a,m]=max(sim(net,m));
disp(b);
我遇到以下错误,我不知道如何解决:

使用trainlm时出错(第109行)


输入和目标具有不同数量的样本

网络/列车(106号线)错误[net,tr]= FEVAR(NET.TrnFCN,NET,X,T,席,Ai,EW,NET.PAREPARAM); 神经网络中的误差(第55行)[net,tr]=序列(net,数据集归一化,T)

注意:datasetNormalized是我在[0,1]中规范化的数据集。
哪个部分导致问题?

输入和目标具有不同数量的样本。这似乎是个问题

     T=reshape(repmat([1:9],10,1),1,90) --> T=reshape(repmat([1:9],10,1),90,1)

[net,tr]=train(net,datasetNormalized,T); --> [net,tr]=train(net,datasetNormalized',T);

T将用作网络的目标;因此,根据一位朋友的建议,我将T定义为9*90数组,这样,前10列的第一行中有1个,其他行为零,后10列的第二行中有1个,依此类推

T=zeros(9,90);
for j=1:90
    i=ceil(j/10);
    T(i,j)=1;
end

[net,tr]=train(net,datasetNormalized',T);

这解决了我在训练网络上遇到的错误,尽管我仍然不确定如何将其映射到输入字符并确定它们。

问题仍然存在。到底应该为网络输入什么作为输出?这太复杂了,我很困惑!错误消息是什么?您能否使用trainlm(第109行)向我们显示T和datasetNormalizedError的大小?输入和目标具有不同的样本数。网络/火车(线106)[网,Tr]=FEVAR(Net.TrfFCN,Net,X,T,席,Ai,EW,Net.TopPARAM)的错误;神经网络(第56行)[net,tr]=序列(net,datasetNormalized',T)中的错误
T=zeros(9,90);
for j=1:90
    i=ceil(j/10);
    T(i,j)=1;
end

[net,tr]=train(net,datasetNormalized',T);