Informer2020 icon indicating copy to clipboard operation
Informer2020 copied to clipboard

为什么训练和测试都使用同一个__getitem__方法

Open taogege68 opened this issue 2 years ago • 3 comments

作者您好,我想具体问一下您,您这个模型在训练测试的时候都使用的同一个__getitem__方法,而且dataloader加载数据调用__getitem__方法,是每次滑动一个单位进行获取数据。那么有个问题:这会导致前面预测的数据,再一次被预测,最后输出结果不就是有很多重复的预测吗?想请问下您这样设置目的是什么哩?

taogege68 avatar May 19 '22 05:05 taogege68

这个是标准做法,这个再次预测是在什么情况下发生呢?

zhouhaoyi avatar Jun 02 '22 05:06 zhouhaoyi

这个是标准做法,这个再次预测是在什么情况下发生呢?

作者您好,非常感谢您能回复这个问题。再次预测是你使用训练好的模型在测试集预测的时候,如果你将在测试集上跑出来的预测结果可视化出来,你会发现他的长度会比真实的长度更长。也就是数据划分的时候你是一个一个移动的(你的滑动窗口为1)。

taogege68 avatar Jun 02 '22 06:06 taogege68

按照我的理解,我们每次是选取seq_len的一段去预测pred_len的一段,训练集和测试集都是这样,它们的区别简单来说在于是否更新模型。 可以这样说,我们预测了[1, pred_len], [2, pred_len+1], [3, pred_len+2]...这种很多个长度为pred_len的一段,最终测试结果的形状就是段数pred_len预测的变量数。他们预测的结果之间是有一定交集的,但是他们是根据不同的输入预测得到的,您需要可视化的话可以选取对应的段进行可视化。

MountVoom avatar Jun 02 '22 08:06 MountVoom