我目前正在使用梯度累积训练一些模型,因为模型批次不适合 GPU 内存。由于我使用的是梯度累积,我不得不稍微调整一下训练配置。我调整了两个参数:批量大小和梯度累积步骤。但是,我不确定这个修改的效果,所以我想充分了解梯度累积步骤参数和批量大小之间的关系。
我知道,当您累积梯度时,您只是在更新权重之前为某些步骤添加梯度贡献。通常,每次计算梯度时都会更新权重(传统方法):
但是在累积梯度时,您会在更新权重之前多次计算梯度(即梯度累积步骤数):
我的问题是:批量大小之间有什么关系和梯度累积步骤?
例如:以下配置是否等效?
- :没有梯度累积(每一步都累积),批量大小为 8,因为它适合内存。
- :梯度累积(每 4 步累积),将批量大小减少到 2,因此它适合内存。
我的直觉是他们是,但我不确定。我也不确定是否必须修改学习率.