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.]])