如何监控深度学习训练

时间:2020-04-13 00:15:02

标签: matlab deep-learning

我想监视培训的进行情况,该如何更改我的代码?我发现她的https://se.mathworks.com/help/deeplearning/ug/monitor-deep-learning-training-progress.html有一些解释,但我无法应用,有人可以帮忙吗?


[trainingSet,testSet] = splitEachLabel(imds,0.3,'randomize');
imageSize = net.Layers(1).InputSize; 
augmentedTrainingSet = augmentedImageDatastore(imageSize,...
    trainingSet,'ColorPreprocessing','gray2rgb'); 
augmentedTestSet = augmentedImageDatastore(imageSize,...
    testSet,'ColorPreprocessing','gray2rgb');
w1 = net.Layers(2).Weights;
w1 = mat2gray(w1); 
featureLayer = 'fc1000'; 
trainingFeatures = activations(net,augmentedTrainingSet,...
    featureLayer,'MiniBatchSize',32,'OutputAs','columns');
trainingLables = trainingSet.Labels;
classifier=fitcecoc(trainingFeatures,...
    trainingLables,'Learner','Linear','Coding','onevsall','ObservationsIn','columns');
testFeature = activations(net,augmentedTestSet,...
    featureLayer,'MiniBatchSize',32,'OutputAs','columns');
predictLabels = predict(classifier, testFeature,'ObservationsIn','columns');
testLables = testSet.Labels; 
confMat = confusionmat(testLables , predictLabels);
confMat = bsxfun(@rdivide , confMat , sum(confMat,2));
mean(diag(confMat));

1 个答案:

答案 0 :(得分:1)

我认为这只能通过使用trainNetwork函数(net = trainNetwork(XTrain,YTrain,layers,options))来实现,不幸的是,fitcecoc中未提供此选项。因此,您可以发送训练数据和网络层以及trainNetwork的选项来为您绘制训练进度。请注意,为了绘制进度,您还应该在选项中将“ training-progress”指定为“ Plots”值,例如以下代码显示的最后一行:

options = trainingOptions('sgdm', ...
    'MaxEpochs',8, ...
    'ValidationData',{XValidation,YValidation}, ...
    'ValidationFrequency',30, ...
    'Verbose',false, ...
    'Plots','training-progress');