深度学习在处理数据的过程中,有其独特的数据存储形式——张量,在模型的训练、验证过程中,都是以张量的格式来进行的。因此,需要了解 pytorch 框架下张量的基本操作,才可以理解后面的课程内容。
目录
1 定义张量
import torch
x=torch.arange(4)
print(x)
# out<< tensor([0 1 2 3])
还有多种方式可以生成张量
- 零张量、一张量生成
- 通过列表转化
- 后续继续学习补充
2 张量操作
主要有张量的拼接,张量转化为numpy张量、标量,张量的加减乘乘法幂次运算、逻辑运算、求和运算等多种运算方式,可进行集中学习补充
3 张量的广播机制
我们有时可能会定义一些维度并不相同的张量,这时,由于广播机制的存在,它们之间仍然能够进行运算,有时这会对我们有所帮助,当有时也会产生错误。广播机制存在于两个维度相等的张量间
import torch
a=torch.arange(3).reshape(3,1)
b=torch.arange(2).reshape(1,2)
print(a)
print(b)
#(tensor([[0],
# [1],
# [2]]),
# tensor([[0, 1]]))
print(a+b)
# tensor([[0, 1],
# [1, 2],
# [2, 3]])
原因就是在于,在进行加法运算时,由于广播机制的存在,将a沿列复制成了一个(3×2)的张量,二把b沿行复制成立(3×2)的张量。加法运算得以继续进行。
4 张量的切片
基本规则和numpy相似,后续进行学习补充和对比
5 内存节省
与python的一些运行机制有关,主要是在变量的声明、赋值时。