我想预测多水文站点的流量(特征只有一个:流量),输入到lstm中的数据形状是[Batch_size,num_nodes,time_steps,num_feature],来预测未来三天每个站点的流量。
但是在lstm前加上两层GCNConv,输入的数据形状是[batch_size,time_step,num_node,dim_feature],得到的loss反而比单独使用lstm更大,我想知道是为什么,是输入数据维度不正确,还是水文数据在空间上没有相关性?还是gcn得到的数据需要经过处理才能输入lstm?
PS:我用ST-GCN跑我的数据,得到的效果也不如lstm
先确认一下是否输入数据的维度和形状是否正确,是否与网络的输入规定相符。
如果输入到LSTM中的数据形状是[batch_size,num_nodes,time_steps,num_feature],而在LSTM前加了两层GCNConv,那么输入的数据形状应该是[batch_size,time_steps,num_node,dim_feature],即把num_nodes和num_feature的维度调换了。
此外,使用GCNConv得到的数据可能需要进行一定的处理才能输入LSTM,例如拼接成[batch_size,num_nodes*time_steps,num_feature]的形状。
如果输入数据的维度和形状都正确,可能是您的水文数据在空间上没有相关性,导致使用GCN提取的特征并不能有效提升模型的性能。