获取模型参数的梯度
def get_p_norm(model):
grad_all = 0.0
for p in model.parameters():
grad = 0.0
if p.grad is not None:
# print("max grad is {} ".format(p.grad.max()))
grad = (p.grad ** 2).sum()
grad_all += grad
grad_norm = grad_all ** 0.5
return grad_norm