Work with part of the code below:
#data initialization x = torch.randn(10, 10) y = torch.randn(10, 1) # param initialization w = torch.randn(10, 1, requires_grad=True) print('W before updating is leaf == ', w.is_leaf) n_epoch = 1 for epoch in range(n_epoch): loss = ((x @ w) ** 2).sum() loss.backward() w = w - w.grad * 0.01 print('W after updating is leaf == ', w.is_leaf)
Let’s, that I wanna do updating parameters without context manager torch.no_grad().
w = w - w.grad * 0.01
Does it cause to building new computational graph? Because this operation is using requires_grad=True variable?
Moreover, why w after updating become non-leaf variable?
I apologize in advance for the stupid question! Thank you!