1

我正在尝试使用 pytorch 和 tensor2tensor 训练 seq2seq 模型(变压器)。使用 tensor2tensor 时,批量大小可以为 1024,而 pytorch 模型显示 CUDA 内存不足错误,批量大小为 8。

tensor2tensor 中是否使用了任何技术来充分利用内存。

如果有人知道这一点,请告诉我。

提前致谢。

4

1 回答 1

1

默认情况下,在 Tensor2Tensor 中,批量大小以每个 GPU 的令牌(子字)数指定。这允许在一批中使用更多数量的短序列(句子)或更少数量的长序列。大多数其他工具包使用在序列数中指定的固定批量大小。无论哪种方式,最好将训练中的最大句子长度限制在一个合理的数字,以防止内存不足错误和过度填充。一些工具包还喜欢指定每个 GPU 卡的总批量大小。

于 2020-05-05T08:22:43.460 回答