Neural nw : Inputs and targets have different numbers of samples

Illustration
farzad - 2021-08-02T12:22:13+00:00
Question: Neural nw : Inputs and targets have different numbers of samples

Hi All   I have a code , I am just checking how it works , my input matrice is : input = [0.0600000000000000 0.00100000000000000 45 0.0508000000000000 0.0127000000000000] and the target is a 6 by 6 matrixso using this code bellow , I get the mentioned error : Inputs and targets have different numbers of samples , Error in Neural (line 17) , [net,tr] = train(net,xn_tr,yn_tr); here is the full code : clc clear clear all load('input.txt') %load input load ('taget.txt') %normalizing data [xn_tr,xs_tr] = mapstd(input); [yn_tr,ys_tr] = mapstd(taget); %%network net=newff(xn_tr,yn_tr,[7 7],{'tansig'},'traingda');%7 hidden tanh layer gradian descent adaptive net.trainParam.epochs =70; net.trainParam.lr = 0.05; net.trainParam.lr_inc = 1.05; %training network net.trainFcn='traingda'; [net,tr] = train(net,xn_tr,yn_tr); %randomizing initial value f weight matrix net = init(net); net.trainParam.show = NaN; u_t=mapstd('apply',x,xs_tr); %simulating output y_hat=sim(net,u_t); %plotting performance plotperform(tr) mse=mse(y-y_hat)  

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

Here is a simplified example using the NEWFF example in the help and doc documentation. I omitted
  1. Using an inner for loop over multiple random weight initializations and data divisions. To see those type examples search on greg Ntrials
  2. Extracting the individual trn/val/tst performances via using the training record tr to obtain the corresponding indices.

 

 % >> help newpr    
 % load simpleclass_dataset
 %      net = newpr(simpleclassInputs,simpleclassTargets,20);
 %      net = train(net,simpleclassInputs,simpleclassTargets);
 %      simpleclassOutputs = net(simpleclassInputs);

 close all, clear all, clc, plt = 0
[ x, t ]  = simpleclass_dataset;
[ I   N ] = size(x)   % [ 2 1000 ]
[ O N ] = size(t)    % [ 4 1000 ]
trueclass = vec2ind(t);
class1 = find(trueclass==1);
class2 = find(trueclass==2);
class3 = find(trueclass==3);
class4 = find(trueclass==4);
N1 = length(class1)    % 243
N2 = length(class2)    % 247
N3 = length(class3)    % 233
N4 = length(class4)    % 277
x1 =  x(:,class1);
x2 =  x(:,class2);
x3 =  x(:,class3);
x4 =  x(:,class4);
plt = plt + 1
hold on
plot(x1(1,:),x1(2,:),'ko')
plot(x2(1,:),x2(2,:),'bo')
plot(x3(1,:),x3(2,:),'ro')
plot(x4(1,:),x4(2,:),'go')

 Hub = -1+ceil( (0.7*N*O-O)/(I+O+1))  % 399
Hmax = 40   % Hmax << Hub 
dH    = 4   % Design ~10 candidate nets
Hmin  = 2   % I know 0 and 1 are too small

 rng(0)   % Allows duplicating the rsults
j=0
for h=Hmin:dH:Hmax
    j = j+1
    net            = newpr(x,t,h);
    [ net tr y  ]  = train( net, x, t );
    assignedclass  =  vec2ind(y);
    err = assignedclass~=trueclass;
    Nerr           = sum(err);
    PctErr(j,1)    = 100*Nerr/N;
end
h = (Hmin:dH:Hmax)';    
PctErr = PctErr;
results = [ h PctErr ]

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!