【问题标题】:Correct way to feed data to RNN in PyTorch在 PyTorch 中向 RNN 提供数据的正确方法
【发布时间】:2021-01-27 10:49:58
【问题描述】:

我有一个数据序列a,其形状为[seq_len, 2]seq_len 是序列的长度。 a[:, 0]a[:, 1]的元素之间存在时间相关性,但a[:, 0]a[:, 1]是相互独立的。为了训练,我准备了形状 [batch_size, seq_len, 2] 的数据。我使用的 BRNN 的初始化是

birnn_layer = nn.RNN(input_size=2, hidden_size=100, batch_first=True, bidirectional=True)

来自docs

input_size – 输入 x 中预期特征的数量

hidden_​​size – 隐藏状态 h 的特征数量

“预期功能的数量”是什么意思?由于沿seq_len 轴存在相关性,我的input_size 是否应该设置为seq_len 并且输入被置换?谢谢。

【问题讨论】:

  • 你写了correlation among elements a[:, 0] and a[:, 1], but a[:, 0] and a[:, 1] are independent of each other。你的意思是 [0][0] 和 [0][1] 是独立的吗?
  • @TheodorPeifer,假设a=[[a, b], [c, d], [e, f]],那么,a, c, e 是相关的,b, d, e 是相关的。但是第一组值不会影响第二组值所取的值。换句话说,a, c, e 可以看作是来自一个进程的样本,而b, d, e 是来自另一个进程的样本。这些过程相互独立。

标签: python-3.x deep-learning pytorch recurrent-neural-network


【解决方案1】:

问题是,如果有的话,您的数据如何对整体优化问题产生影响。你说a[:, 0] 的元素是时间相关的,a[:, 1] 的元素是时间相关的。 a[i, 0]a[i, 1] 是否与时间相关?将两个序列设置在一起有意义吗?

例如,如果您试图根据施加在机器上的电压序列a[:, 0] 和房间内的湿度a[:, 1] 随着时间的推移以及这些信号在同时没关系。但是它们应该是在不同的时间收集的,这有意义吗?或者,如果您测量的不是湿度,它会帮助您预测故障吗?

预期特征的数量可以说是单个时间戳中的特征数量。因此,按照我之前的类比,我同时测量了多少个信号(电压、湿度……)。

当然这只是一个例子,你不必有分类随时间的问题,它可以是其他任何问题。最重要的是您的 RNN 和数据如何协同工作。

【讨论】:

  • a[i, 0]a[i, 1] 对于任何 i 都是独立的。就像我在 cmets 中提到的,a[:, 0] 可以看作是来自进程 A 的样本,a[:, 1] 是来自进程 B 的样本,其中 A不影响B
  • @learner 我明白了。这就是为什么我试图举一个假设信号独立(电压/湿度)的例子。此外,我在@Mercury 的回答下看到了您的评论。恕我直言,您应该设置input_size=2,但是如果没有用例和有关您尝试对网络做什么的信息,就不可能说。
  • 我想要实现的是在每个采样时间都有两个随机过程输出样本。来自过程的样本是相关的。我正在尝试教我的 BRNN 这个过程演变,并尝试让它在给定当前值的情况下预测未来值。再次感谢。
【解决方案2】:

整对 [c, d] 的时间是否独立于 [a, b]?如果存在依赖关系,即数据遵循[c, d]必须出现在[a, b]之后的具体逻辑,那么[[a,b], [c,d], ...]的序列公式是正确的。对于batch_size x seq_len x 2 形式的数据,此2 将是“预期功能的数量”或input_size

不过,您也说过[a, c, e][b, d, f]独立 进程的结果。所以很自然,它们也可以分离为batch_size x seq_len x 1 形式的两个独立序列。您可以将这两个序列通过两个单独的 BRNN 层,然后组合得到的特征——通过沿特征维度连接,或者通过求和、平均值、最大值等。关于多模态融合主题的一点浅读在这方面学习可能会有所帮助。

【讨论】:

  • 假设我有两个进程 AB 同时启动。在每个采样时刻,我从每个进程中抽取一个样本以获取元组 [a, b]。在下一个采样时刻,我得到了元组[c, d]。但是,进程AB 是独立的。所以要回答你的问题,[c, d] 必须出现在[a, b]之后。
  • “你可以通过两个单独的...传递这两个序列”是的,但这取决于上下文,对吗?再说一遍,他的数据与优化问题有什么关系?
猜你喜欢
  • 2019-01-27
  • 1970-01-01
  • 2019-12-29
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
相关资源
最近更新 更多