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.Tensor
class 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)
:
将对象投为指定的类型,如果已经是正确的类型,则不会复制并返回原对象。
网友评论