在使用optimizer.step()更新模型参数之前,我们需要使用optimizer.zero_grad()清除之前计算的梯度信息。这是因为PyTorch默认会累加梯度,如果不清除的话,会导致梯度信息累积,使得模型参数更新不准确。因此,我们需要在每次迭代之前手动将梯度清零,以确保每次更新的梯度都是当前样本的梯度。
如果不将梯度清零会导致模型的accuracy断崖式的下降。
在使用optimizer.step()更新模型参数之前,我们需要使用optimizer.zero_grad()清除之前计算的梯度信息。这是因为PyTorch默认会累加梯度,如果不清除的话,会导致梯度信息累积,使得模型参数更新不准确。因此,我们需要在每次迭代之前手动将梯度清零,以确保每次更新的梯度都是当前样本的梯度。
如果不将梯度清零会导致模型的accuracy断崖式的下降。