【问题标题】:Is there any difference between tensor2tensor and pytorch in view of memory?就内存而言,tensor2tensor 和 pytorch 有什么区别吗?
【发布时间】:2020-05-05 16:22:43
【问题描述】:

我正在尝试使用 pytorch 和 tensor2tensor 训练 seq2seq 模型(变压器)。 使用 tensor2tensor 时,batch size 可以是 1024,而 pytorch 模型显示 CUDA out of memory error with 8 batch size。

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

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

提前致谢。

【问题讨论】:

  • 如果没有更多上下文就无法判断,它们是模型的相同实现吗?显示一些代码示例。你的 gpu 是否正确配置了 pytorch?

标签: tensorflow pytorch tensor2tensor


【解决方案1】:

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

【讨论】:

  • 非常感谢!令人惊讶。
猜你喜欢
  • 2021-03-06
  • 1970-01-01
  • 2013-11-29
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多