师兄,打扰一下。
PyTorch中求高阶导数只能使用autograd.grad()方法吗?
我知道,下面这个是可以求高阶导数的。
x = torch.tensor([5.], requires_grad=True)
y = x**3
师兄,我这里y=x**3, 和y = torch.pow(x, 3)有什么区别吗
grad_x = autograd.grad(y, x, create_graph=True)[0]
print(grad_x)#输出75
grad_grad_x = autograd.grad(grad_x, x, create_graph=True)[0]
print(grad_grad_x)#输出30
而使用
x = torch.tensor([5.], requires_grad=True)
y = x**3
y.backward()
print(x.grad)
这种方法是不是只能求1阶导数,那他还有什么意义呢。
我们不管1阶还是高阶导数都使用autograd.grad()方法不就行了吗。