Hi I made a simple code to track nn.Linear’s parameter’s update.
import torch


optimizer = torch.optim.Adam(qwe.parameters(), lr=0.001)
optimizer.zero_grad()

qwe = nn.Linear(1,1)

xx = torch.tensor(torch.ones(1,1), requires_grad = True)
yy =qwe(xx)
zz = yy**2

zz.backward()

print('xx requires grad: ',xx.requires_grad)
print(xx.grad) 
print('yy requires grad : ',yy.requires_grad)
print(yy.grad) 
print("qwe's weight:",qwe.weight.clone())
print("qwe's grad",qwe.weight.grad)
print('zz requires grad :',zz.requires_grad)
print(zz.grad) 
optimizer.step()
print("qwe's weight:",qwe.weight.clone())

The result is
xx requires grad:  True
tensor([[0.5291]])
yy requires grad :  True
None
qwe's weight: tensor([[0.3074]], grad_fn=<CloneBackward>)
qwe's grad tensor([[1.7211]])
zz requires grad : True
None
qwe's weight: tensor([[0.3074]], grad_fn=<CloneBackward>)

You can see qwe’s grad is not none but there was no update in qwe’s weight.
How can I see weight’s update ?
Is it possible to catch weight update?