每个torch.Tensor
都有torch.dtype
, torch.device
,和torch.layout
。
torch.dtype
torch.dtype
是表示torch.Tensor
的数据类型的对象。PyTorch
有八种不同的数据类型:
Data type | dtype | Tensor types |
---|---|---|
32-bit floating point | torch.float32 or torch.float | torch.*.FloatTensor |
64-bit floating point | torch.float64 or torch.double | torch.*.DoubleTensor |
16-bit floating point | torch.float16 or torch.half | torch.*.HalfTensor |
8-bit integer (unsigned) | torch.uint8 | torch.*.ByteTensor |
8-bit integer (signed) | torch.int8 | torch.*.CharTensor |
16-bit integer (signed) | torch.int16 or torch.short | torch.*.ShortTensor |
32-bit integer (signed) | torch.int32 or torch.int | torch.*.IntTensor |
64-bit integer (signed) | torch.int64 or torch.long | torch.*.LongTensor |
使用方法:
>>> x = torch.Tensor([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
>>> print x.type()
torch.FloatTensor
torch.layout
torch.layout
表示torch.Tensor
内存布局的对象。目前,我们支持torch.strided(dense Tensors)
并为torch.sparse_coo(sparse COO Tensors)
提供实验支持。
torch.strided
代表密集张量,是最常用的内存布局。每个strided
张量都会关联 一个torch.Storage
,它保存着它的数据。这些张力提供了多维度, 存储的strided
视图。Strides
是一个整数型列表:k-th stride
表示在张量的第k维从一个元素跳转到下一个元素所需的内存。这个概念使得可以有效地执行多张量。
例:
>>> x = torch.Tensor([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
>>> x.stride()
(5, 1)
>>> x.t().stride()
(1, 5)
关于torch.sparse_coo
张量的更多信息,请参阅torch.sparse。
《转:pytorch中文学习文档》
原创文章,转载请注明 :pytorch使用torch.dtype、torch.device和torch.layout管理数据类型属性 - pytorch中文网