张量的运算是深度学习的基本操作,深度学习框架的重要功能之一就是支持张量的定义与运算。
1. 张量的数据类型
数据 | pytorch类型 | CPU上的张量 | GPU上的张量 |
---|---|---|---|
32位浮点数 | torch.float32 torch.float |
torch.FloatTensor | torch.cuda.FloatTensor |
64位浮点数 | torch.float64 torch.double |
torch.DoubleTensor | torch.cuda.DoubleTensor |
16位浮点数 | torch.float16 torch.half |
torch.HalfTensor | torch.cuda.HalfTensor |
8位无符号整数 | torch.uint8 | torch.ByteTensor | torch.cuda.ByteTensor |
8位带符号整数 | torch.int8 | torch.CharTensor | torch.cuda.CharTensor |
16位带符号整数 | torch.int16 torch.short |
torch.ShortTensor | torch.cuda.ShortTensor |
32位带符号整数 | torch.int32 torch.int |
torch.IntTensor | torch.cuda.IntTensor |
64位带符号整数 | torch.int64 torch.long |
torch.LongTensor | torch.cuda.LongTensor |
布尔型 | rorch.bool | torch.BoolTensor | torch.cuda.BoolTensor |
2. python列表和numpy数组转为python张量
2.1 转换python列表为python张量
t = torch.tensor([1, 2, 3, 4], dtype=torch.float32) # 列表转张量并指定张量数据类型
print(t)
print(t.dtype) # 张量类型
2.2 转换numpy数组为python张量
arr = np.array([1, 2, 3, 4])
t = torch.tensor(t)
<