我的数据集非常庞大。设X为输入训练数据,为6X140000,T为目标,为3X140000。
net = patternnet(10);
% Set divide parameters
net.divideFcn = 'divideind';
net.divideParam.trainInd = loc_Train;
net.divideParam.testInd = loc_Test;
net.divideParam.valInd = loc_Valid;
net.trainFcn = 'trainscg';
% Set training parameters
net.trainParam.epochs = 1000;
net.trainParam.max_fail = 20;
net.trainParam.min_grad = 1e-20;
net.trainParam.goal = 1e-10; % Set a very small value
% Set network performance functions
net.performFcn = 'crossentropy';
net.performParam.regularization = 0.02;
net.performParam.normalization = 'none';
net.trainParam.showWindow = 0;
net.trainParam.showCommandLine = 1;
在我设置网络后,我运行以下代码来训练我的网络。
[net, tr] = train(net, X, T);
命令行显示:
计算模式:MEX训练模式识别神经网络 与TRAINSCG。
Epoch 0/1000,时间0.001,性能0.0061672 / 1e-10, 梯度0.00065207 / 1e-20,验证检查0/20
Epoch 20/1000,时间2.214,性能0.0060292 / 1e-10,梯度6.3997e-05 / 1e-20,验证检查20/20
完成TRAINSCG培训:验证 停止。
tr对象,即训练记录,包含测试索引等信息。但是,tr.testInd
返回空。