cure-lab / SCINet

The GitHub repository for the paper: “Time Series is a Special Sequence: Forecasting with Sample Convolution and Interaction“. (NeurIPS 2022)
Apache License 2.0
617 stars 127 forks source link

运行ETTH的时候, 现模型为何没有使用数据中的date信息 #48

Closed lk1983823 closed 2 years ago

lk1983823 commented 2 years ago

在训练的过程中, 发现模型并没有使用date信息, 但是在模型初始化的时候, 却对时间数据进行了encoding, 见train函数的代码(来自 exp_ETTH.py ):

.....
 for i, (batch_x, batch_y, batch_x_mark, batch_y_mark) in enumerate(train_loader): # 
                iter_count += 1
                model_optim.zero_grad()
                pred, pred_scale, mid, mid_scale, true, true_scale = self._process_one_batch_SCINet(
                    train_data, batch_x, batch_y)
.....

batch_x_mark和bacht_y_mark是关于date信息的encoding结果, 但 _process_one_batch_SCINet函数显然没有使用这两个输入,而且模型的dim_in为7, 就是除去date以外的其他7个特征. 请问这是怎么考虑的? 谢谢

mixiancmx commented 2 years ago

你好,我们这里代码其实是参照informer的代码进行ett数据集的读取,informer模型里用了那两个mark信息,所以代码里会有那两个mark变量。Scinet在设计的时候没有考虑直接用那些时间戳信息,所以mark没有作为模型输入。不好意思给你造成了困扰。

Lonearly commented 10 months ago

在训练的过程中, 发现模型并没有使用date信息, 但是在模型初始化的时候, 却对时间数据进行了encoding, 见train函数的代码(来自 exp_ETTH.py ):

.....
 for i, (batch_x, batch_y, batch_x_mark, batch_y_mark) in enumerate(train_loader): # 
                iter_count += 1
                model_optim.zero_grad()
                pred, pred_scale, mid, mid_scale, true, true_scale = self._process_one_batch_SCINet(
                    train_data, batch_x, batch_y)
.....

batch_x_mark和bacht_y_mark是关于date信息的encoding结果, 但 _process_one_batch_SCINet函数显然没有使用这两个输入,而且模型的dim_in为7, 就是除去date以外的其他7个特征. 请问这是怎么考虑的? 谢谢

您好,我也遇见这样的问题,请问您解决了吗?十分感谢您的回复。