vol*_*ssa 3 python gradient-descent torch pytorch autograd
我试图了解基本的 pytorch autograd 系统:
x = torch.tensor(10., requires_grad=True)
print('tensor:',x)
x.backward()
print('gradient:',x.grad)
Run Code Online (Sandbox Code Playgroud)
输出:
tensor: tensor(10., requires_grad=True)
gradient: tensor(1.)
Run Code Online (Sandbox Code Playgroud)
由于x是一个标量常量并且没有函数应用于它,所以我期望0.作为梯度输出。为什么是渐变1.呢?
每当您使用 时,您都会计算所有参数(在您的情况下为 )的value.backward()导数value(在您的情况下)。粗略地说,这意味着以某种方式参与计算的所有张量都具有. 所以这意味着value == xxrequires_grad=True
x.grad = dx / dx = 1
Run Code Online (Sandbox Code Playgroud)
除此之外:通过自动微分,您始终使用“常量”值进行计算:您的所有函数或网络始终在具体点进行评估。你得到的梯度是在同一点评估的梯度。没有进行符号计算。计算梯度所需的所有信息都被编码在计算图中。
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |