pytorch基础到提高(3)-Tensor(3)

特定数据类型的tensor可以被构造,通过 torch.dtype和/或torch.device,对于构造函数或张量创建操作。

>>> cuda0 = torch.device('cuda:0')
>>> torch.ones([2, 4], dtype=torch.float64, device=cuda0)
tensor([[ 1.0000,  1.0000,  1.0000,  1.0000],
        [ 1.0000,  1.0000,  1.0000,  1.0000]], dtype=torch.float64, device='cuda:0')

可以使用Python的索引和切片表示法访问和修改tensor的内容:

import torch
y=torch.tensor([[1,2],[3,4]])
print(y)
print(y[1,:])
print(y[:,0])
print(y[:,1])
tensor([[1, 2],
        [3, 4]])
tensor([3, 4])
tensor([1, 3])
tensor([2, 4])

使用 torch.Tensor.item() 从包含单个值的张量中获取Python数,请执行以下操作:

import torch
y=torch.tensor([[1,2],[3,4]])
print(y)

print(y[1,1].item())
tensor([[1, 2],
        [3, 4]])
4

可以使用requires_grad=True创建张量,以便torch.autograd记录对它们的操作以进行自动区分。

import torch
x = torch.tensor([[1., 2.], [3., 4.]], requires_grad=True)
out = x.pow(2).sum()
out.backward()
print(x.grad)
tensor([[2., 4.],
        [6., 8.]])

每个 tensor 都有一个相关的 torch.Storage,,它保存数据。tensor类还提供了存储的多维、跨视图,并定义了对存储的数字操作。
改变tensor的方法用下划线后缀标记。例如,torch.FloatTensor.abs_()就地计算绝对值并返回修改后的张量,而torch.FloatTensor.abs_()以新的tensor张量计算结果。

改变现有的张量 torch.device 和/或torch.dtype,考虑对张量使用to()方法。

当前执行的 torch.Tensor 引入内存开销,因此在具有许多小张量tensor的应用程序中可能会导致意外的高内存使用率

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页