torch.Tensor.new_tensor
- Tensor.new_tensor(data, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, pin_memory=False) → Tensor
-
返回一个新的 Tensor,其
data作为张量数据。默认情况下,返回的 Tensor 具有与当前张量相同的torch.dtype和torch.device。警告
new_tensor()总是会复制data。如果你已经有一个 Tensor 变量,并且希望避免数据被复制,可以使用torch.Tensor.requires_grad_()或者torch.Tensor.detach()。如果你有一个 numpy 数组,并且希望避免复制,可以使用torch.from_numpy()。警告
当数据是一个张量 x 时,
new_tensor()会从传入的对象中读取“数据”,并构造一个叶变量。因此,tensor.new_tensor(x)等同于x.clone().detach(),而tensor.new_tensor(x, requires_grad=True)等同于x.clone().detach().requires_grad_(True)。推荐使用clone()和detach()的等价形式。- 参数
-
data (array_like) – 返回的张量将复制
data。 - 关键字参数
-
-
dtype (
torch.dtype) - 返回的张量所需的类型。默认值:如果为 None,则与此张量相同的torch.dtype。 -
device (
torch.device, 可选) – 返回的张量所需的设备。默认情况下,如果为 None,则与该张量相同的torch.device。 -
requires_grad (bool, optional) – 是否启用自动求导记录返回的张量上的操作。默认值:
False。 -
layout (
torch.layout, 可选) - 指定返回张量的布局。默认值为torch.strided。 -
pin_memory (bool, 可选) – 如果启用,返回的张量将在固定内存中分配。仅适用于 CPU 张量。默认值:
False。
-
示例:
>>> tensor = torch.ones((2,), dtype=torch.int8) >>> data = [[0, 1], [2, 3]] >>> tensor.new_tensor(data) tensor([[ 0, 1], [ 2, 3]], dtype=torch.int8)