Pytorch学习入门(二)--- Autograd

pytorch能自动反向传播。 前向传播时,能够自动记录每个操作的拓扑顺序,反向传播时则可以自动反向传播。

Variable

Variable是一个类,对是对tensor的一个wrapper。
Pytorch学习入门(二)--- Autograd_第1张图片
有三个属性.data, .grad.creator。(注意:新版的.creator已经改成.grad_fn了,这里不再说明。)如果是第一个运算节点,显然.creator是空,.grad只有调用.backward时候才会有。
require_grad可以指定某个variable是否计算其梯度。

import torch
from torch.autograd import Variable
x = Variable(torch.ones(2, 2), requires_grad=True)
print(x)  # notice the "Variable containing" line
'''
Variable containing:
 1  1
 1  1
[torch.FloatTensor of size 2x2]
'''

y = x + 2
print(y)
'''
Variable containing:
 3  3
 3  3
[torch.FloatTensor of size 2x2]
'''
print(y.creator)
'''

'''
z = y * y * 3
out = z.mean()

out.backward()
print(x.grad)
'''
Variable containing:
 4.5000  4.5000
 4.5000  4.5000
[torch.FloatTensor of size 2x2]
'''


你可能感兴趣的:(pytorch,PyTorch)