Here is my code.
import torch
v = torch.tensor([0., 0., 0.], requires_grad=True)
x = 1
def f(grad):
    global x
    x = 2
    return grad * 2
h = v.register_hook(f)  # double the gradient
v.backward(torch.tensor([1., 2., 3.]))
h.remove()
print(v.grad)

When I debug with pdb, I find that I cannot break in function f (I set a breakpoint inside f at the statement x = 2).
Does anyone know how to solve this?
Note: if I use pycharm, I can break into the function. But on the remote server, I would like to use pdb.