张量运算和梯度
Tensor Operation and gradient
我在 youtube 上看一些教程,下面的代码示例用于解释导数
创建张量。
x = torch.tensor(3.)
w = torch.tensor(4., requires_grad=True)
b = torch.tensor(5., requires_grad=True)
x, w, b
算术运算
y = w * x + b
y
计算导数
y.backward()
显示渐变
print('dy/dx:', x.grad)
print('dy/dw:', w.grad)
print('dy/db:', b.grad)
输出
dy/dx: None
dy/dw: 张量(3.)
dy/db: 张量(1.)
谁能解释一下我们如何将张量 (3.) 和张量 (1.) 作为梯度的输出。我需要了解pytorch是如何在幕后执行这个操作的。
如有任何帮助,我们将不胜感激。
你有y = w*x + b
,那么
dy/dx = w
dy/dw = x
dy/db = 1
由于您没有为 x 设置 requires_grad=True
,PyTorch 不会计算导数 w.r.t。它。
因此,dy/dx = None
其余为对应张量的值。因此,最终输出为
dy/dx: None
dy/dw: tensor(3.)
dy/db: tensor(1.)
我在 youtube 上看一些教程,下面的代码示例用于解释导数
创建张量。
x = torch.tensor(3.)
w = torch.tensor(4., requires_grad=True)
b = torch.tensor(5., requires_grad=True)
x, w, b
算术运算
y = w * x + b
y
计算导数
y.backward()
显示渐变
print('dy/dx:', x.grad)
print('dy/dw:', w.grad)
print('dy/db:', b.grad)
输出
dy/dx: None
dy/dw: 张量(3.)
dy/db: 张量(1.)
谁能解释一下我们如何将张量 (3.) 和张量 (1.) 作为梯度的输出。我需要了解pytorch是如何在幕后执行这个操作的。
如有任何帮助,我们将不胜感激。
你有y = w*x + b
,那么
dy/dx = w
dy/dw = x
dy/db = 1
由于您没有为 x 设置 requires_grad=True
,PyTorch 不会计算导数 w.r.t。它。
因此,dy/dx = None
其余为对应张量的值。因此,最终输出为
dy/dx: None
dy/dw: tensor(3.)
dy/db: tensor(1.)