pytorch是非常好的人工智能训练和推理框架,我们来通过李沐老师的《动手学深度学习》来简单学习一下。
首先,安装pytorch,请参考pytorch官网:PyTorch
也可以到kaggle、colab、启智社区等使用配置好的pytorch环境,更简单方便。
pytorch基本操作
导入并进行标量计算
import torch
x = torch.tensor(3.0)
y = torch.tensor(2.0)
x + y, x * y, x / y, x**y
输出:
(tensor(5.), tensor(6.), tensor(1.5000), tensor(9.))
向量操作
可以通过索引访问内部元素
x = torch.arange(4)
x
tensor([0, 1, 2, 3])
x[3]
tensor(3)
矩阵操作
A = torch.arange(20).reshape(5, 4)
A
tensor([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]])
也可以使用torch.randn生成随机矩阵
A = torch.randn((5, 4))
张量操作
多维矩阵就是张量,AI训练主要就是张量的计算,也就是我们常说的3D、4D数据。
X = torch.arange(24).reshape(2, 3, 4)
X
tensor([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]])
张量的加法就是同样位置的元素相加
A = torch.arange(20, dtype=torch.float32).reshape(5, 4)
B = A.clone() # 通过分配新内存,将A的一个副本分配给B
A, A + B
(tensor([[ 0., 1., 2., 3.], [ 4., 5., 6., 7.], [ 8., 9., 10., 11.], [12., 13., 14., 15.], [16., 17., 18., 19.]]), tensor([[ 0., 2., 4., 6.], [ 8., 10., 12., 14.], [16., 18., 20., 22.], [24., 26., 28., 30.], [32., 34., 36., 38.]]))
张量的同样位置相乘,叫哈达玛乘
A * B
tensor([[ 0., 1., 4., 9.], [ 16., 25., 36., 49.], [ 64., 81., 100., 121.], [144., 169., 196., 225.], [256., 289., 324., 361.]])