I am trying to do adaptive training of a neural network using patternnet using all default settings, so the following is my complete code (except for array initialisation). The train code works, and is verified to produce accurate output : X is [101,12507] of training data, T is [133,12507] of classification data net = patternnet(101); net = train(net,X,T); If I try adaptive training with one sample : X is [101,1] of training data, T is [133,1] of classification data net = patternnet(101); net = adapt(net,X,T); I get the following error: Error using * Inner matrix dimensions must agree. Error in nn7.grad2 (line 108) gNi(:,qq) = Fdot{qq}' * gA{i}(:,qq); Error in adaptwb>adapt_network (line 100) [gB,gIW,gLW] = nn7.grad2(net,[],PD(:,:,ts),BZ,IWZ,LWZ,N,Ac(:,ts+AcInd),gE,Q,1,hints); Error in adaptwb (line 37) [out1,out2,out3] = adapt_network(in1,in2,in3,in4); Error in network/adapt (line 108) [net,Ac,tr] = feval(net.adaptFcn,net,Pd,T,Ai); Error in D_Train_Net_Adapt (line 14) net = adapt(net,X,T);
Prashant Kumar answered .
2025-11-20
close all, clear all, clc [ x, t] = iris_dataset; [ I N ] = size(x) % [ 4 150 ] [ O N ] = size(t) % [ 3 150 ] % TCI TrueClassIndices: 1, 2 and 3 TCI = vec2ind(t); H = 10 % default No. of hidden nodes % NET TRAINING net1 = patternnet(H); rng(4151941) % my RNG initialization [ net1 tr y1 e1 ] = train(net1,x,t); % PCI PredictedClassIndices: 1, 2 and 3 PCI1 = vec2ind(y1); Errors1 = [ PCI1 ~= TCI ]; % 0s and 1s Nerrs1 = sum(Errors1) % 4 PctErr1 = 100*Nerrs1/N % 2.67 % NET ADAPTATION net2 = patternnet(H); rng(4151941) % my RNG initialization [ net2 y2 e2 xf af ar] = adapt(net2,x,t); % PCI PredictedClassIndices: 1, 2 and 3 PCI2 = vec2ind(y2); Errors2 = [ PCI2 ~= TCI ]; % 0s and 1s Nerrs2 = sum(Errors2) % 91 PctErr2 = 100*Nerrs2/N % 60.7