1、Torch张量库
张量是一个可以被超过二维索引的矩阵的一般化,可以是n维,用法类似numpy
2、Variable变量
变量知道怎么创建的它们自己的过程,比Tensor多了grad_fn等额外的东西
3、自动求导
在任意变量上使用.backward()
将会运行反向,从它开始。运行这个s.backward()
很多次,将进行梯度的累积(这里x是关于s的变量,与具体值无关,求得x的梯度x.grad=[1,1,1];运行2次则是[2,2,2];)
# 变量围绕tensor对象
x = autograd.Variable(torch.Tensor([1., 2., 3]), requires_grad=True)
# 您可以使用.data属性访问数据.
print(x.data)
# 你也可以用变量来做与张量相同的运算.
y = autograd.Variable(torch.Tensor([4., 5., 6]), requires_grad=True)
z = x + y
print(z.data)
# 我们来将z中所有项作和运算
s = z.sum()
print(s)
print(s.grad_fn)
# 但是z知道一些额外的东西.
print(z.grad_fn)
s.backward()
print(x.grad)