[x,t] = iris_dataset;\nrng(0)\n[~, nData] = size(x);\n\n% Randomizing the data\nrandIDs = randperm(nData);\nXAllData = x(:,randIDs);\n\n% Data split for training and testing \nY = categorical(vec2ind(t)');\nXTrain = XAllData(:,1:100)';\nYTrain = Y(randIDs(1:100));\nXTest = XAllData(:,101:150)';\nYTest = Y(randIDs(101:150));\n\n% Defining the shallow neural network layers \nlayers = [featureInputLayer(4, "Name", "Input", "Normalization", "rescale-symmetric");...\n fullyConnectedLayer(10, "Name", "firstHidden");\n tanhLayer("Name","tanHyperbolicLayer");\n fullyConnectedLayer(3, "Name", "OutputFC")\n softmaxLayer\n classificationLayer("Name","Output")];\n\n% Setting up training options\noptions = trainingOptions('sgdm', ...\n 'InitialLearnRate',1e-2, ...\n 'MaxEpochs',500,...\n 'Verbose',false, ...\n "Shuffle","every-epoch", ...\n "Plots","training-progress", ...\n "ValidationData",{XTest,YTest});\n\n% Train the network\nnetDLT = trainNetwork(XTrain,YTrain,layers,options);