gpt4 book ai didi

pytorch - 在pytorch中,y.backward([0.1, 1.0, 0.0001])的含义

转载 作者:行者123 更新时间:2023-12-03 19:35:47 25 4
gpt4 key购买 nike

在火炬中y.backward([0.1, 1.0, 0.0001])是什么意思?

我了解 y.backward()意味着进行反向传播。
但是[0.1, 1.0, 0.0001]是什么意思在 y.backward([0.1, 1.0, 0.0001]) ?

最佳答案

表达式 y.backward([0.1, 1.0, 0.0001])实际上是错误的。应该是 y.backward(torch.Tensor([0.1, 1.0, 0.0001])) , 其中 torch.Tensor([0.1, 1.0, 0.0001])是要计算其导数的变量。



示例 :

x = Variable(torch.ones(2, 2), requires_grad=True)
y = (x + 2).mean()
y.backward(torch.Tensor([1.0]))
print(x.grad)

在这里, y = (x + 2)/4等等, dy/dx_i = 0.25自从 x_i = 1.0 .另请注意, y.backward(torch.Tensor([1.0]))y.backward()是等价的。

如果你这样做:

y.backward(torch.Tensor([0.1]))
print(x.grad)

它打印:

Variable containing:
1.00000e-02 *
2.5000 2.5000
2.5000 2.5000
[torch.FloatTensor of size 2x2]

简直是 0.1 * 0.25 = 0.025 .所以,现在如果你计算:

y.backward(torch.Tensor([0.1, 0.01]))
print(x.grad)

然后打印:

Variable containing:
1.00000e-02 *
2.5000 0.2500
2.5000 0.2500
[torch.FloatTensor of size 2x2]

在哪里, dy/dx_11 = dy/d_x21 = 0.025dy/dx_12 = dy/d_x22 = 0.0025 .

backward()的函数原型(prototype).你可以考虑看看这个 example .

关于pytorch - 在pytorch中,y.backward([0.1, 1.0, 0.0001])的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49441425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com