训练准确率图表
我正在尝试使用LSTM和MATLAB对ECG信号进行分类,上述图表显示系统的训练准确率为100%,但当我应用这段代码来计算和获取准确率时,我只得到了20%
LSTMAccuracy = sum(trainPred == Labels)/numel(Labels)*100
计算的训练准确率
我是不是遗漏了什么?还是我的代码有什么问题?
这是配置和训练代码:
layers = [ ... sequenceInputLayer(1) bilstmLayer(100,'OutputMode','last') fullyConnectedLayer(5) softmaxLayer classificationLayer ]options = trainingOptions('adam', ... 'MaxEpochs',1750, ... 'MiniBatchSize', 150, ... 'InitialLearnRate', 0.0001, ... 'ExecutionEnvironment',"auto",... 'plots','training-progress', ... 'Verbose',false);net = trainNetwork(Signals, Labels, layers, options);trainPred = classify(net, Signals,'SequenceLength',1000);LSTMAccuracy = sum(trainPred == Labels)/numel(Labels)*100figureconfusionchart(Labels,trainPred,'ColumnSummary','column-normalized',... 'RowSummary','row-normalized','Title','Confusion Chart for LSTM');
回答:
这个问题可以通过以下代码行解决:
trainPred = classify(net, Signals,'SequenceLength','longest');