0

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

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

序列应按长度分组,并在发送到 Keras 之前按该长度手动分段。

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

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

4

1 回答 1

2

有一种用虚拟值填充数据的解决方案,因此所有输入序列都具有相同的长度。

假设你有这两个序列:

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

然后你用一个遮罩层开始你的模型。

这将自动忽略样本中的额外长度。

于 2017-11-06T11:37:51.750 回答