liuhahayue / Deep-WP

Deep Wave Prediction (Deep-WP) is a repository containing code to predict irregular long-crested waves.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

是否将目标y的一部分输入到了神经网络里了?

TiAmoLip opened this issue · comments

在我运行1_train_networks_probability.py的时候,打开调试模式,在train_probability.py里面发现torch.allclose(X_lag[19:,:],y[:5,:])=True, 我很疑惑按照论文来说这部分不是属于未来时间段的数据吗?为什么直接给塞进神经网络里了?我检查了一下神经网络确实没有将过去和未来的时间段区分开来。而且虽然说做inference的时候,可以用已知数据(假设参数和1_train的一样)的最后24维度塞进神经网络然后得到一个新的y,但是新的y的有效长度只是1(因为你扔进损失函数的y有5维和输入的x是一样的,代表inference最后得到的长度为6的y的前5个和之前的应该是高度接近的),这和模型说的Seq2Seq沾不上边。希望得到您的解惑

你可以看一下我在数据集划分那部分的代码是如何将训练、验证以及测试区分开。然后我用的递归也在论文中的模型结构加以说明,你可以检查一下5维度是因为同时包含了协变量,在模型那部分,我用了mode来选择模型最终输入的变量是哪些。

抱歉我没说清楚我的问题。
X_lag的形状是(n_lag+n_seq, batch_size, 1),y的形状是(n_seq, batch_size, 1),我做了allclose的正是在他们的第一维度,而不是所说的5维度特征。您后面说的特征早已经在前面被分开成了X_idx和X_cov。之所以有特殊的数字5是因为您在做数据集的时候有一个长度为1的时移导致无法做到切片n_seq(这里等于6)都一样。torch.allclose(X_lag[19:,:], y[:5,:])=True表明输入到神经网络里的有一部分是y的数据。

现在我想明白,您这块应该是没有问题的。