1.pip安装PyTorch
sudo pip install torch torchvision
2.导入PyTorch包
import torch
3.Tensor(张量)
# tensor创建
a = torch.Tensor(2, 2)
a = torch.ones(2,2)
# 大小和类型
b = torch.rand(2, 2)
b.size()
b.type()
# 类型转换
a = a.long()
a = a.float()
# tensor转换np.array
c = b.numpy()
# np.array转换tensor
import numpy as np
d = np.array([[1, 3], [2, 4]])
e = torch.from_numpy(d)
# [行操作]沿着行取最大值
x = torch.Tensor(5, 4)
max_value, max_idx = torch.max(x, dim=1)
# [行操作]沿着行求和
sum_x = torch.sum(x, dim=1)
# 求和
z = x+y
z = torch.add(x, y)
4.Variable(变量)
Variable是对Tensor的封装,操作和Tensor是一样的,不过Variabel会放入一个计算图,然后进行前向传播、反向传播以及自动求导。
一个Variable里面包含着三个属性,data,grad和creator,其中creator表示得到这个Variabel的操作,grad表示方向传播的梯度,data表示取出这个Variabel里面的数据。
from torch.autograd import Variable
# requires_grad是否求梯度,默认False
x = Variable(torch.Tensor([5]), requires_grad=True)
y = Variable(torch.Tensor([6]), requires_grad=True)
# 求和
z = torch.sum(9 * x + 9 * y)
z.data
z.grad_fn
# 求x和y的梯度
z.backward()
x.grad
y.grad