110,050
社区成员
发帖
与我相关
我的任务
分享
利用CNN提取负荷的特征输入到LSTM中进行负荷预测。采用MATLAB搭建模型如下:
2、部分代码
layers4= [ sequenceUnfoldingLayer('name','unfold')
flattenLayer('name','flatten')
lstmLayer(numhidden_units1,'Outputmode','sequence','InputWeightsInitializer',func,'name','lstm1')
dropoutLayer(0.1,'name','dropout_1')
lstmLayer(numhidden_units2,'Outputmode','last','InputWeightsInitializer',func,'name','lstm2')
dropoutLayer(0.1,'name','drdiopout_2')
fullyConnectedLayer(outputSize,'WeightsInitializer',func,'name','fullconnect') % 全连接层设置(影响输出维度)(cell层出来的输出层) %
leakyReluLayer('name','ReluLayer')
regressionLayer('name','output')];
lgraph = addLayers(lgraph,layers4);
lgraph = connectLayers(lgraph,'concat','unfold/in');
lgraph = connectLayers(lgraph,'fold/miniBatchSize','unfold/miniBatchSize');
figure
plot(lgraph)
%%
% 网络训练
tic
net = trainNetwork(Train_xNorm,Train_yNorm,lgraph,opts);
%% 测试
% close all
figure
Predict_Ynorm = net.predict(Test_xNorm);
Predict_Y = mapminmax('reverse',Predict_Ynorm',yopt);
Predict_Y = Predict_Y';
plot(Predict_Y,'g-')
hold on
plot(Test_y);
legend('预测值','实际值')
3、结果展示