我正在尝试用pytorch和tensor2tensor训练seq2seq模型(转换器)。使用tensor2tensor时,批处理大小可能类似于1024,而pytorch模型显示CUDA out memory错误,批处理大小为8。
在tensor2tensor中有没有什么技术可以最大限度地利用内存。
如果有人知道这一点,请告诉我。
提前谢谢。
发布于 2020-05-05 16:22:43
在Tensor2Tensor中,默认情况下,批处理大小以每个GPU令牌(子字)的数量指定。这允许在一批中使用较多数量的短序列(句子)或较少数量的长序列。大多数其他工具包使用在序列数量中指定的固定批处理大小。无论哪种方式,将训练中的最大句子长度限制为reasonable number是一个好主意,以防止内存不足错误和过度填充。一些工具包还倾向于指定每个GPU卡的总批量大小。
https://stackoverflow.com/questions/61607629
复制相似问题