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 数据。默认情况下,返回的 Tensor 具有与此 Tensor 相同的torch.dtype
和torch.device
。警告
new_tensor()
始终复制data
。如果您有一个 Tensordata
并想避免复制,请使用torch.Tensor.requires_grad_()
或torch.Tensor.detach()
。如果您有一个 numpy 数组并想避免复制,请使用torch.from_numpy()
。警告
当 data 是一个 tensor x 时,
new_tensor()
从传入的任何数据中读取“数据”,并构造一个叶变量。因此,tensor.new_tensor(x)
等同于x.detach().clone()
,而tensor.new_tensor(x, requires_grad=True)
等同于x.detach().clone().requires_grad_(True)
。建议使用detach()
和clone()
的等价形式。- 参数
data (array_like) – 返回的 Tensor 复制
data
。- 关键字参数
dtype (
torch.dtype
, 可选) – 返回 Tensor 期望的数据类型。默认值:如果为 None,则与此 Tensor 具有相同的torch.dtype
。device (
torch.device
, 可选) – 返回 Tensor 期望的设备。默认值:如果为 None,则与此 Tensor 具有相同的torch.device
。requires_grad (bool, 可选) – 如果 autograd 应该记录对返回 Tensor 的操作。默认值:
False
。layout (
torch.layout
, 可选) – 返回 Tensor 期望的布局。默认值:torch.strided
。pin_memory (bool, 可选) – 如果设置,返回的 Tensor 将在固定内存中分配。仅适用于 CPU Tensor。默认值:
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)