效果一览
基本介绍
程序设计
- 完整程序和数据获取方式私信博主回复matlab基于transformer-lstm多变量时间序列多步预测。
% 数据归一化
[p_train, ps_input] = mapminmax(p_train, 0, 1);
p_test = mapminmax('apply', p_test, ps_input);
[t_train, ps_output] = mapminmax(t_train, 0, 1);
t_test = mapminmax('apply', t_test, ps_output);
%% 数据平铺
for i = 1:size(p_train,2)
traind{i,:} = (reshape(p_train(:,i),or_dim,[]));
end
for i = 1:size(p_test,2)
testd{i,:} = (reshape(p_test(:,i),or_dim,[]));
end
targetd = t_train';
targetd_test = t_test';
%% 模型
numchannels = or_dim;
maxposition = 256*2;
numheads = 4;
numkeychannels = numheads*32;
layers = [
sequenceinputlayer(numchannels,name="input")
positionembeddinglayer(numchannels,maxposition,name="pos-emb");
additionlayer(2, name="add")
options = trainingoptions(solver, ...
'plots','none', ...
'maxepochs', maxepochs, ...
'minibatchsize', minibatchsize, ...
'shuffle', shuffle, ...
'initiallearnrate', learningrate, ...
'gradientthreshold', gradientthreshold, ...
'executionenvironment', executionenvironment);
发表评论