如何自动选择批处理大小以适合GPU?

Dim*_*ims 7 gpu out-of-memory deep-learning keras tensorflow

我正在使用GPU训练深度神经网络。如果我制作的样本太大,批处理太大或网络太深,则会出现内存不足错误。在这种情况下,有时可以制作较小的批次并仍进行训练。

是否可以计算训练所需的GPU大小并预先确定要选择的批处理大小?

更新

如果我打印网络摘要,它将显示“可训练参数”的数量。我不能从这个值估算吗?例如,将其乘以批处理大小,将梯度乘以两倍等等?

Sal*_*ali 5

不,不可能自动执行此操作。因此,如果您希望您的批次尽可能多,您需要经过大量的反复试验才能找到合适的尺寸。

斯坦福的 CNN 课提供了一些如何估计内存大小的指导,但所有建议都与 CNN 相关(不确定你训练什么)。


Nie*_*els 5

PyTorch Lightning 最近添加了一个名为“自动批量大小”的功能,特别是为此!它计算可以适合您的 GPU 内存的最大批量大小:)

更多信息可以在这里找到。

原始公关:https : //github.com/PyTorchLightning/pytorch-lightning/pull/1638