【发布时间】:2018-10-08 14:42:16
【问题描述】:
我正在学习PyTorch官方docs的教程。我试图理解内容。从You can do many crazy things with autograd!开始
x = torch.randn(3, requires_grad=True)
y = x * 2
i = 0
while y.data.norm() < 100:
y = y * 2
i+= 1
print(x)
print(y)
print(i)
输出:
tensor([-0.6933, 0.1126, 0.3913], requires_grad=True)
tensor([-88.7455, 14.4082, 50.0871], grad_fn=<MulBackward>)
6
在点[0.1, 1.0, 0.0001]处找到x的导数
gradients = torch.tensor([0.1, 1.0, 0.0001], dtype=torch.float)
y.backward(gradients)
print(x.grad)
输出:
tensor([ 12.8000, 128.0000, 0.0128])
据我了解,i 等于 6。然后y = (2x)^7 和导数不同于PyTorch。替换值时,它具有 7 作为一个因素
到我的导数。
PyTorch 的答案只是将x 替换为dy/dx = 2^7 * x 的给定点
问题:
如何导出导数?
参考资料:
【问题讨论】: