According to the autograd tutorial code in pytorch with example 5.
with torch.no_grad():
        w1 -= learning_rate * w1.grad
        w2 -= learning_rate * w2.grad

        # Manually zero the gradients after updating weights
        w1.grad.zero_()
        w2.grad.zero_()

It returns in console with following error:
<ipython-input-67-ca9abcaafd03> in <module>()
      1 # update the weight
----> 2 w1 -= lr * w1.grad
      3 w2 -= lr * w2.grad

RuntimeError: a leaf Variable that requires grad has been used in an in-place operation.

Should it change to the latest version with in-place tensor operation?
such as:
learning_rate = 0.01
for f in net.parameters():
    f.data.sub_(f.grad.data * learning_rate)