torch.Tensor.new_tensor¶
- Tensor.new_tensor(data, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, pin_memory=False) Tensor¶
返回一个新的张量,其中
data作为张量数据。默认情况下,返回的张量具有与该张量相同的torch.dtype和torch.device。警告
new_tensor()始终复制data。如果您有一个张量data并希望避免复制,请使用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, 可选) – 是否应在返回的张量上记录自动微分。默认值:
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)