您好,就是我用LSTM训练完数据集,但是我预测的时候想把它从更小的时间步长比如压缩到0.1秒一个步长来从0开始预测,参照您那一篇LSTM的博客该改那一部分的代码呀?救命
直接上代码
%% 创建变量
XTrain=mts.train;
YTrain=categorical(mts.trainlabels);%将数值数组转化为类别数组
XTest=mts.test;
YTest=categorical(mts.testlabels);
%% 构建LSTM网络
inputSize = 12;%特征的维度
numHiddenUnits = 100;%LSTM网路包含的隐藏单元数目
numClasses = 9;%label标签的种数,该例子中为人数
layers = [ ...
sequenceInputLayer(inputSize)
lstmLayer(numHiddenUnits,'OutputMode','last')
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer];
maxEpochs = 100;%最大训练周期数
miniBatchSize = 27;%分块尺寸
options = trainingOptions('adam', ...
'ExecutionEnvironment','cpu', ...
'MaxEpochs',maxEpochs, ...
'MiniBatchSize',miniBatchSize, ...
'GradientThreshold',1, ...
'Verbose',false, ...
'Plots','training-progress');
%% 训练
net=trainNetwork(XTrain,YTrain,layers, options)
%% 预测
YPred = classify(net,XTest, ...
'MiniBatchSize',miniBatchSize, ...
'SequenceLength','longest')
%% 精确度检验
acc = sum(YPred == YTest)./numel(YTest)
训练结果
检验结果
acc = 0.9324
可见LSTM的分类效果还是挺优良的。
.