Description
老师您好!我正在尝试复现这项工作,并使其可以进行多变量预测,目前遇到了几个问题想向咨询一下。
我的基本思路是这样子的:在论文中,有以下片段
'''
Spatio-Temporal Data. A spatio-temporal data X is defined as a four-dimensional tensor with dimensions T × C × H × W , where T represents time steps, C represents the number of variables, H and W represent spatial grids. T , C, H , and W can vary across different spatio-temporal scenarios.
'''
我的理解是,其中THW三个维度可以表示“某一天内的一个特定的时空坐标”,而C则表示这个时空坐标内的变量,我下载了TDrive和Cellular数据集,发现在最开始并没有C这个维度,初始维度是NTHW,我理解为一共有N天,每天一个THW大小的“时空方块”。
之后,在DataLoader之中,unsqueeze()进去了一个维度,我认为这个为u都就是C,且C=1,也就是说这两个数据集都是单变量的预测。
再之后,维度C会在嵌入阶段被从1被卷积的out_channel转换成设定好的emb_dim,而T/H/W也会根据卷积核在对应维度上的大小切块,其数值会被处以卷积核大小并摊平。N则保持不变。
也就是说,此时的数据形式变成:N-(T’H‘W’)-C,T'=T/(patch_time), H'=H/(patch_space), W'=W/(patch_space), C=emb_dim
现在我的问题就是:
在数据集中,在DataLoader处理后,x与x_period的实际数据shape分别为:
842,1,12,16,20
842,3,12,16,20
其中x_period指的应该是“在x表示的那前一天的前三天的数据”,然而,其中的“三天”没有单开一个维度,而是“占用”了表示变量数量的维度C,这和原文中的描述有冲突。
论文代码我还在复现中,可能有很多地方没有理解对,因此想向您了解一下实际思路,谢谢老师!