def get_grad_norm()

in src/utils.py [0:0]


def get_grad_norm(model):
    grads = []
    for p in model.parameters():
        if p.grad is not None:
            if p.grad.is_sparse:
                grads.append(p.grad.data.to_dense().view(-1, 1))
            else:
                grads.append(p.grad.data.view(-1, 1))
    if len(grads) == 0:
        grads.append(torch.FloatTensor([0]))
    grad_norm = torch.norm(torch.cat(grads))
    if grad_norm.is_cuda:
        grad_norm = grad_norm.cpu()
    return grad_norm.item()