第二章 torch.Tensor torch.Tensor 是一种包含单一数据类型元素的多维矩阵。 Torch 定义了七种 CPU tensor 类型和八种 GPU tensor 类型:
Data tyoe
CPU tensor
GPU tensor
32-bit floating point
torch.FloatTensor
torch.cuda.FloatTensor
64-bit floating point
torch.DoubleTensor torch.cuda.DoubleTensor
16-bit floating point
N/A
torch.cuda.HalfTensor
8-bit integer (unsigned) torch.ByteTensor
torch.cuda.ByteTensor
8-bit integer (signed)
torch.CharTensor
torch.cuda.CharTensor
16-bit integer (signed)
torch.ShortTensor
torch.cuda.ShortTensor
32-bit integer (signed)
torch.IntTensor
torch.cuda.IntTensor
64-bit integer (signed)
torch.LongTensor
torch.cuda.LongTensor
torch.Tensor 是默认的 tensor 类型(torch.FlaotTensor)的简称。 一个张量 tensor 可以从 Python 的 list 或序列构建: >>> torch.FloatTensor([[1, 2, 3], [4, 5, 6]]) 123 456 [torch.FloatTensor of size 2x3] 一个空张量 tensor 可以通过规定其大小来构建: >>> torch.IntTensor(2, 4).zero_() 0000 0000 [torch.IntTensor of size 2x4] 可以用 python 的索引和切片来获取和修改一个张量 tensor 中的内容: >>> x = torch.FloatTensor([[1, 2, 3], [4, 5, 6]]) >>> print(x[1][2]) 6.0 >>> x[0][1] = 8 >>> print(x) 183 456 [torch.FloatTensor of size 2x3] 每一个张量 tensor 都有一个相应的 torch.Storage 用来保存其数据。类 tensor 提供了一个存储的 多维的、横向视图,并且定义了在数值运算。 !注意: 会改变 tensor 的函数操作会用一个下划线后缀来标示。比如, torch.FloatTensor.abs_()会在原地计算绝对值,并返回改变后的 tensor,而 tensor.FloatTensor.abs()将会在一个新的 tensor 中计算结果。 class torch.Tensor class torch.Tensor(*sizes) class torch.Tensor(size) class torch.Tensor(sequence)