MATALB创建LSTM,训练集精度高但是测试集精度很低是什么原因?

MATALB创建LSTM,训练集精度高但是测试集精度很低是什么原因?

但是在训练过程中训练进度显示准确度已经达到100左右,但是测试精度只有50%。

为了控制变量我甚至使用了相同的训练集和测试集,效果依然不一样。请问是什么问题呢?

网络部分参考下文:

// =========================设计LSTM网络=================================
yTrain_categorical=categorical(yTrain);
numClasses=numel(categories(yTrain_categorical));
yTest_categorical=categorical(yTest);
sequenceInput=size(xTrainFeatureSD{1},1); // 如果选了3种特征作为数据,这里改为”3″

// 创建用于sequence-to-label分类的LSTM步骤如下:
// 1. 创建sequence input layer
// 2. 创建若干个LSTM layer
// 3. 创建一个fully connected layer
// 4. 创建一个softmax layer
// 5. 创建一个classification outputlayer
// 注意将sequence input layer的size设置为所包含的特征类别数,本例中,1或2或3,取决于你用了几种特征。fully connected layer的参数为分类数,本例中为8.

layers = [ …

sequenceInputLayer(sequenceInput)
lstmLayer(256,’OutputMode’,’last’)
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer
];

maxEpochs=600;
miniBatchSize=32;
// 如果不想展示训练过程,
options = trainingOptions(‘adam’, …

‘ExecutionEnvironment’, ‘gpu’,…

‘SequenceLength’, ‘longest’,…

‘MaxEpochs’,maxEpochs, …

‘MiniBatchSize’, miniBatchSize, …

‘InitialLearnRate’, 0.001, …

‘GradientThreshold’, 1, …

‘plots’,’training-progress’, …

‘Verbose’,true);

// ======================训练网络=========================
net2 = trainNetwork(xTrainFeatureSD,yTrain_categorical,layers,options);
// ======================测试网路==========================
testPred2 = classify(net2,xTestFeatureSD);
// 打印混淆矩阵
plotconfusion(yTest_categorical’,testPred2′,’Testing Accuracy’)
———
原文链接:https://blog.csdn.net/weixin_43196262/article/details/118053421

Original: https://blog.csdn.net/Cavend1sh/article/details/123970192
Author: 素质教育漏网之鱼397
Title: MATALB创建LSTM,训练集精度高但是测试集精度很低是什么原因?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/689952/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球