目录
在PyTorch中,张量Torch是最基础的运算单位。
1、Tensor的数据类型
1.1、创建浮点型Tensor:torch.FloatTensor
a = torch.FloatTensor(3, 5)
print(a)
b = torch.FloatTensor([16, 8, 23, 5, 6])
print(b)
1.2、创建整型Tensor:torch.IntTensor
a = torch.IntTensor(3, 5)
print(a)
b = torch.IntTensor([16, 8, 23, 5, 6])
print(b)
1.3、创建浮点型随机Tensor:torch.rand , torch.randn , torch.randint
a = torch.rand(3, 5) # 随机生成的浮点数据在0~1之间
print(a)
b = torch.randn(3, 5) # 随机生成的浮点数据均值为0,方差为1
print(b)
c = torch.randint(low=1, high=8, size=(3, 5)) # 创建指定大小且元素数值在low和high之间的tensor
print(c)
1.4、创建浮点型自定义范围的Tensor:torch.range 和 torch.arange
a = torch.range(1, 5) # torch.range(start=1, end=5) 的结果是会包含end的
print(a)
'''
run结果显示:UserWarning: torch.range is deprecated and will be removed in a future release
because its behavior is inconsistent with Python's range builtin. Instead, use
torch.arange, which produces values in [start, end). a = torch.range(1, 5)
tensor([1., 2., 3., 4., 5.])
'''
b = torch.arange(1, 5) # torch.arange(start=1, end=5)的结果并不包含end
print(b)
'''
run结果:tensor([1, 2, 3, 4])
'''
1.5、创建元素值均为0的浮点型Tensor:tensor.zeros
a = torch.zeros(3, 5)
print(a)
1.6、创建指定大小值的Tensor:tensor.full
a = torch.full((3, 5), 8) # 创建一个3×5,元素值均为8的tensor
print(a)
2、Tensor的运算
2.1、Tensor数据的绝对值化:torch.abs
a = torch.randint(low=-8, high=8, size=(3, 5))
print(a)
b = torch.abs(a)
print(b)
2.2、Tensor数据的求和:torch.add
a = torch.randint(low=-8, high=8, size=(3, 5))
b = torch.randn(3, 5)
sum = torch.add(a, b)
print(sum)
2.3、对输入参数进行自定义裁剪:torch.clamp
a = torch.randint(low=-8, high=8, size=(3, 5))
b = torch.clamp(a, -4, 4) # 对a进行裁剪,裁剪范围为-4~4
print(b)
2.4、Tensor数据的求商:torch.div
a = torch.randint(low=-8, high=8, size=(3, 5))
b = torch.randint(low=1, high=6, size=(3, 5))
c = torch.div(a,b)
print(c)
2.5、Tensor数据的求积:torch.mul
a = torch.randint(low=-8, high=8, size=(3, 5))
b = torch.randint(low=1, high=6, size=(3, 5))
c = torch.mul(a,b)
print(c)
2.6、Tensor数据的矩阵乘法:torch.mm(不同于 torch.mul)
a = torch.randint(low=-8, high=8, size=(3, 5)) # 前一个矩阵的列数要等于后一个矩阵的行数
b = torch.randint(low=1, high=6, size=(5, 3))
c = torch.mm(a,b)
print(c)
2.7、Tensor数据的矩阵乘法:torch.mv
a = torch.randn(3, 5) # 矩阵与向量之间的乘法规则
print(a)
b = torch.randn(5)
print(b)
c = torch.mv(a, b)
print(c)
2.8、Tensor数据的求幂:torch.pow
a = torch.randint(low=-8, high=8, size=(3, 5))
b = torch.randint(low=1, high=6, size=(3, 5))
c = torch.pow(a,b)
print(c)