深化的CNN+LSTM模型笔记
模型概述
为了提高极端降水预测任务的性能,我们设计了一个深度CNN+LSTM模型。这个模型通过增加卷积层的通道数,同时减少每个卷积层的网格数量,并增加LSTM隐藏层的维度,以确保输出形状为 [1, 72, 57, 81]
。
模型结构
模型主要由以下几个部分组成:
- 卷积层
- 批归一化层
- 激活函数
- 最大池化层
- Dropout层
- LSTM层
- 全连接层
卷积层
卷积层用于提取输入数据的空间特征。我们增加了卷积层的数量,并逐渐增加每个卷积层的通道数,同时减少每个卷积层的网格数量。卷积层结构如下:
self.conv1 = nn.Conv2d(in_channels=24, out_channels=64, kernel_size=3, padding=1)
self.bn1 = nn.BatchNorm2d(64)
self.relu = nn.ReLU()
self.pool = nn.MaxPool2d(kernel_size=2, stride=2)
self.dropout = nn.Dropout(p=0.3)
self.conv2 = nn.Conv2d(in_channels=64, out_channels=128, kernel_size=3, padding=1)
self.bn2 = nn.BatchNorm2d(128)
self.conv3 = nn.Conv2d(in_channels=128, out_channels=256, kernel_size=3, padding=1)
self.bn3 = nn.BatchNorm2d(256)
self.conv4 = nn.Conv2d(in_channels=256, out_channels=512, kernel_size=3, padding=1)
self.bn4 = nn.BatchNorm2d(512)
LSTM层
LSTM层用于处理时间序列特征。我们增加了LSTM的隐藏层维度,并确保LSTM层输入的大小适应卷积层输出的大小。
self.lstm = nn.LSTM(input_size=self.conv_output_size, hidden_size=256, num_layers=2, batch_first=True, dropout=0.3)
全连接层
全连接层将LSTM层的输出调整为目标形状 [batch_size, 72, 57, 81]。
self.fc = nn.Linear(256, 57 * 81)
总结
通过增加卷积层的通道数、减少网格数量以及增加LSTM隐藏层的维度,我们构建了一个更深的CNN+LSTM模型。这些修改旨在提高模型的表达能力和预测性能。希望这些改进能帮助更好地完成极端降水预测任务。