来水文了
源码:
for r in range(Water2sea_slice_num):
input_transfer[r, :, r:r+Original_slice_len, :] = input[r, :, :, :]
'''
将原始输入填充到扩展后的张量中,沿着扩展后的序列长度填充原始输入数据
处理的对象:
- input_transfer [Water2sea_slice_num, batch_size, Water2sea_slice_len, input_size]
- input [Water2sea_slice_num, batch_size, Original_slice_len, input_size]
变量定义说明:
- Water2sea_slice_num = 4(行数)
- batch_size = 32
- Original_slice_len = 24(原始列数)
- input_size = 11(特征维度)
- Water2sea_slice_len = 27(扩展后的序列长度)
维度变化:
- 原始输入 input 的形状为
* [4, 32, 24, 11]
*(行数、批次大小、列数、特征维度)
* 4 天,每天 24 小时
* [self.WITRAN_grid_enc_rows, batch_size, self.WITRAN_grid_cols, input_size]
* 原始输入 input 的形状为 [4, 32, 24, 11],表示 4 天的数据,每天有 24 小时,每小时有 11 个特征
- for 循环
次数 Water2sea_slice_num = 4
r = 0 input_transfer[0, :, 0:24, :] = input[0, :, :, :] [32, 24, 11]
r = 1 input_transfer[1, :, 1:25, :] = input[1, :, :, :] [32, 24, 11]
r = 2 input_transfer[2, :, 2:26, :] = input[2, :, :, :] [32, 24, 11]
r = 3 input_transfer[3, :, 3:27, :] = input[3, :, :, :] [32, 24, 11]
* 第 0 行(第 1 天的数据) 填充后,input_transfer[0, :, 0:24, :] 包含第 1 天的 24 小时数据。
* 第 1 行(第 2 天的数据)填充后,input_transfer[1, :, 1:25, :] 包含第 2 天的 24 小时数据,并与第 1 天的数据在时间维度上产生了 1 小时的重叠
* 第 2 行(第 3 天的数据):填充后,input_transfer[2, :, 2:26, :] 包含第 3 天的 24 小时数据,并与第 2 天的数据在时间维度上产生了 2 小时的重叠。
* 第 3 行(第 4 天的数据):填充后,input_transfer[3, :, 3:27, :] 包含第 4 天的 24 小时数据,并与第 3 天的数据在时间维度上产生了 3 小时的重叠。
- 填充后 input_transfer 的形状为
[4, 32, 27, 11]
(行数、批次大小、扩展后的序列长度、特征维度)
[Water2sea_slice_num, batch_size, Water2sea_slice_len, input_size]
'''