Shu*_*agi 3 machine-learning machine-translation deep-learning lstm sequence-to-sequence
为了处理不同长度的序列,我们使用分桶和填充。在分桶中,我们为某些 max_len 制作不同的桶,我们这样做是为了减少填充量,在制作不同的桶后,我们在不同的桶上训练不同的模型。
这是我目前发现的。但我不明白的是,这些不同的模型是如何训练的,以及它们如何用于翻译一个新句子?
Max*_*xim 10
在训练和推理时,算法都需要选择最适合当前输入句子(或批次)的网络。通常,它只需要输入大小大于或等于句子长度的最小桶。
例如,假设只有两个桶[10, 16]和[20, 32]:第一个桶接受任何输入长度10(填充到精确10)并输出翻译的句子长度16(填充到16)。同样,第二个桶处理输入长度为 length 20。对应于这些桶的两个网络接受不相交的输入集。
那么,对于 length 的句子,8最好选择第一个桶。请注意,如果这是一个测试句子,第二个桶也可以处理它,但在这种情况下,它的神经网络已经在更大的句子上进行了训练,从11到20单词,所以它可能不能很好地识别这个句子。对应于第一桶被训练上投入的网络1来10,因此是一个更好的选择。
如果测试语句的 length25比任何可用的桶都长,您可能会遇到麻烦。这里没有通用的解决方案。这里最好的做法是将输入修剪为20单词并尝试翻译。
| 归档时间: |
|
| 查看次数: |
2320 次 |
| 最近记录: |