PyTorch张量

1. 简介

tensor(张量)是 PyTorch 中的多维数组,类似与 Numpy 中的 ndarray

2. 张量类型

PyTorch 中张量一共有 1010 种类型:

张量类型 数据类型(dtype 说明
torch.FloatTensor torch.float32torch.float 3232 位浮点型(binary3211 符号位 + 88 指数位 + 2323 有效位)
torch.DoubleTensor torch.float64torch.double 6464 位浮点型(binary6411 符号位 + 1111 指数位 + 5252 有效位)
torch.HalfTensor torch.float16torch.half 1616 位浮点型(binary1611 符号位 + 55 指数位 + 1010 有效位)
torch.BFloat16Tensor torch.bfloat16 1616 位浮点型(bfloat1611 符号位 + 88 指数位 + 77 有效位)
torch.ByteTensor torch.uint8 88 位无符号整型
torch.CharTensor torch.int8 88 位有符号整型
torch.ShortTensor torch.int16torch.short 1616 位有符号整型
torch.IntTensor torch.int32torch.int 3232 位有符号整型
torch.LongTensor torch.int64torch.long 6464 位有符号整型
torch.BoolTensor torch.bool 布尔类型

3. 基本功能

3.1 函数原型

  • torch.empty(*sizes, out=None) → tensor
  • torch.rand(*sizes, out=None) → tensor
  • torch.randn(*sizes, out=None) → tensor
  • torch.randperm(n, out=None) → longtensor

3.2 举例

1
2
3
4
x = torch.empty(5,3)    # 创建 5*3 的未初始化张量
x = torch.rand(5,3) # 创建 5*3 的随机初始化张量([0,1)的均匀分布)
x = torch.randn(5,3) # 创建 5*3 的随机初始化张量(均值为 0 方差为 1 的标准正态分布)
x = torch.randperm(5) # 创建从 0 到 5-1 的随机整数排列