有没有办法监控优化器在 Pytorch 中的步骤?
Is there a way to monitor optimizer's step in Pytorch?
假设您正在使用 Pytorch 优化器,例如 torch.optim.Adam(model_parameters)。
所以在你的训练循环中你会有类似的东西:
optimizer = torch.optim.Adam(model_parameters)
# put the training loop here
loss.backward()
optimizer.step()
optimizer.zero()
有没有办法监控优化器执行了哪些步骤?确保您不在平坦区域,因此由于梯度为空,因此不采取任何步骤。也许检查学习率是一种解决方案?
在这里回答我自己。
最佳做法是(在 PyTorch 中)检查叶张量的梯度。
如果梯度为 None 但 is_leaf 属性设置为 True,则显然有问题。
torch.nn.Parameters('insert your tensor here') 在这方面尤其令人困惑。
由于需要将 Tensor 定义为 torch.nn.Parameters 才能成功更新。
我建议不要使用 tensor.requires_grad_(True) 因为它会混淆火炬。只设置你的参数如上。
假设您正在使用 Pytorch 优化器,例如 torch.optim.Adam(model_parameters)。
所以在你的训练循环中你会有类似的东西:
optimizer = torch.optim.Adam(model_parameters)
# put the training loop here
loss.backward()
optimizer.step()
optimizer.zero()
有没有办法监控优化器执行了哪些步骤?确保您不在平坦区域,因此由于梯度为空,因此不采取任何步骤。也许检查学习率是一种解决方案?
在这里回答我自己。
最佳做法是(在 PyTorch 中)检查叶张量的梯度。 如果梯度为 None 但 is_leaf 属性设置为 True,则显然有问题。
torch.nn.Parameters('insert your tensor here') 在这方面尤其令人困惑。 由于需要将 Tensor 定义为 torch.nn.Parameters 才能成功更新。 我建议不要使用 tensor.requires_grad_(True) 因为它会混淆火炬。只设置你的参数如上。