标签:packet sha orm 支持 -bash pre 入门 lan info
autograd包是PyTorch中神经网络的核心部分,简单学习一下.
autograd提供了所有张量操作的自动求微分功能. 它的灵活性体现在可以通过代码的运行来决定反向传播的过程, 这样就使得每一次的迭代都可以是不一样的.
autograd.Variable
是这个包中的核心类..backward()
函数,它会帮你把所有的梯度计算好..data
属性可以获取到张量..grad
属性可以获取到梯度.下图是Variable的结构图:
autograd.Function
.Variable
跟Function
一起构建了非循环图,完成了前向传播的计算..grad_fn
属性..grad_fn
值为空..backward()
函数:grad_output
用来存放计算好的梯度.import torch
from torch.autograd import Variable
x=Variable(torch.ones(2,2),requires_grad=True)
print (x)
y=x+2
print(y)
print (x.grad_fn)
print (y.grad_fn)
z = y * y * 3
out = z.mean()
print(z, out)
如果你跟着上面的代码做下来的话,上面已经完成了变量x及计算函数的定义.
现在我们就可以用backward()
自动求导啦.
out.backward()
print(x.grad)
反向计算得到的梯度如下所示:
grad_output
执行.backgrad(grad_output)
语句.以上就基本完成了前向传播建立计算图以及反向传播求梯度的过程.
标签:packet sha orm 支持 -bash pre 入门 lan info
原文地址:https://www.cnblogs.com/jfdwd/p/11434382.html