具有不同序列长度输入的递归神经网络 (RNN)

Recurrent Neural Networks (RNN) with different sequences length inputs

我有不同长度的输入文本,从几个字符到一百个字,所以我决定对每个批次使用不同的 MAX_LENGTH 而不是修复 MAX_LENGTH 用于所有批次(对于较小的文本显然较短 MAX_LENGTH)。

谷歌搜索后,我在 Keras github 页面中看到 this 线程,它给出了以下解决方案:

Sequences should be grouped together by length, and segmented manually into batches by that length before being sent to Keras.

如果我使用这个技巧,我猜想在训练时无法打乱数据,这可能会导致过度拟合。

我在 Kaggle 中看到很多使用这个技巧的讨论。我想知道这个问题还有其他解决方案吗?

有一个解决方案填充你的数据有一个虚拟值,所以你所有的输入序列都有相同的长度。

假设你有这两个序列:

  • [1,2,3,1,2],你保持为[1,2,3,1,2]
  • [1,3,2,3],你用零填充它直到它达到所需的长度:[1,3,2,3,0]

然后你用 Masking 层开始你的模型。

这将自动忽略示例中的额外长度。