torch.Tensor
本笔记引用自PyTorch中文文档
torch.Tensor是一种包含单一数据类型元素的多维矩阵
Torch定义了7种CPU tensor和8种GPU tensor类型:
| Data type | 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.FloatTensor)的简称。 - 每个张量tensor都有一个相应的
torch.Storage用来保存其数据。会改变tensor的函数操作会用一个下划线后缀来标示。
Tensor类的构造函数:
class torch.Tensorclass torch.Tensor(*sizes)class torch.Tensor(size)class torch.Tensor(sequence)class torch.Tensor(ndarray)class torch.Tensor(tensor)class torch.Tensor(storage)
apply_(callable) -> Tensor:
将函数callable作用于tensor中每一个元素,并将每个元素用callable函数返回值替代。该函数只能在CPU tensor中使用,且不应用在有较高性能要求的代码块
byte() -> Tensor:
将tensor改为byte类型
clone() -> Tensor:
返回与原tensor有相同大小和数据类型的tensor
contiguous() -> Tensor:
返回一个内在连续的有相同数据的tensor, 如果原tensor内存连续则返回原tensor。
cpu() -> Tensor:
如果在CPU上没有该tensor,则会返回一个CPU的副本。
cuda(device=None, async=False):
返回此对象在GPU内存中的一个副本。若已在CUDA存储中并且在正确的设备上,则不会进行复制并返回原对象。
- device(int) - 目的GPU的id,默认为当前的设备
data_ptr() -> int:
返回tensor第一个元素的地址。
fill_(value) -> Tensor:
将该tensor用指定的数值填充。
half():
将tensor投射为半精度浮点类型
is_contiguous() -> bool:
如果tensor在内存中是连续的则返回True。
repeat(*sizes):
沿着指定的维度重复tensor,不同于expand(),本函数是复制tensor中的数据
- sizes(torch.Size or int) - 沿每一维重复的次数。
storage() -> torch.Storage:
返回底层内存
stride() -> Tensor:
返回tensor的步长。
type(new_type=None, async=False):
将对象投为指定的类型,如果已经是正确的类型,则不会复制并返回原对象。









网友评论