在PyTorch中,每个Tensor都有三大属性:torch.dtype、torch.device、torch.layout
1、torch.dtype 属性
https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype
2、torch.device 属性
https://pytorch.org/docs/stable/tensor_attributes.html#torch.device
我们可以获得当前使用的GPU以及名称,如下代码所示:
torch.cuda.current_device()
torch.cuda.get_device_name()
3、torch.layout 属性
torch.layout是一个表示torch内存布局的对象。目前,PyTorch支持torch.strided(密集张量)和 torch.sparse_coo(稀疏coo张量)两种类型。
torch.strided代表密集张量,是最常用的内存布局,与之相关的是跨步函数:
def stride(self, dim)
跨步是在指定维度下从一个元素跳到下一个元素所必需的跳跃。跨步是一个整数列表:第k个跨步表示在张量的第k维中从一个元素跳到下一个元素所需的内存跳跃。如下所示:
x = torch.Tensor([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(x.stride())
y = torch.randint(1, 5, (27,))
y = y.reshape(3, 3, 3)
print(y.stride())
输出为:
(5, 1)
(9, 3, 1)