我正在学习PyTorch官方文档的教程。我在试着理解内容。从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在x点找到[0.1, 1.0, 0.0001]的导数w.r.t
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的答案只是简单地用给定的dy/dx = 2^7 * x点来代替dy/dx = 2^7 * x
问题:
如何推导出导数?
参考资料:
发布于 2018-10-05 15:24:49
如果你仔细看一下表达式,会发现y = x * (2^7),它的导数是2^7 * x。
https://stackoverflow.com/questions/52662197
复制相似问题