本次运行测试环境MATLAB2020b,MATLAB实现CNN-GRU多变量时间序列预测,卷积门控循环单元。


% CONV -> ReLU -> MAXPOOL -> FC -> DROPOUT -> FC -> SOFTMAX
layers = [ ...
sequenceInputLayer(inputSize)
convolution1dLayer(5,100,'Padding',2,'Stride', 1) % 卷积层 1
batchNormalizationLayer;
reluLayer(); % ReLU 层 1
convolution1dLayer(5,70,'Padding',2,'Stride', 1); % 卷积层 2
batchNormalizationLayer;
maxPooling1dLayer(1,'Stride',1); % 最大池化 池化层 1
convolution1dLayer(3,50,'Padding',1,'Stride', 1); % 卷积层 3
reluLayer(); % ReLU 层 3
maxPooling1dLayer(1,'Stride',1);
convolution1dLayer(3,40,'Padding',1,'Stride', 1); % 卷积层 4
reluLayer(); % ReLU 层 2
maxPooling1dLayer(1,'Stride',1); % 最大池化 池化层 1
fullyConnectedLayer(1,'Name','fc1')
regressionLayer]
options = trainingOptions('adam',...
'InitialLearnRate',1e-3,...% 学习率
'MiniBatchSize', batchSize, ...
'MaxEpochs',numEpochs);
[net,info1] = trainNetwork(input_train,output_train,layers,options);





CNN-GRU 模型中需要手动设置的参数主要包括卷积层层数、卷积核个数、GRU层层数、GRU层神经元个数和优化学习算法。卷积层层数和卷积核个数体现了CNN从数据中提取特征的能力,GRU层层数和GRU层神经元个数则反映了GRU神经网络从数据中学习时间依赖关系的能力。
[1] https://blog.csdn.net/kjm13182345320/article/details/127515229?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/127993418?spm=1001.2014.3001.5502