new_tensor
(data, dtype=None, device=None, requires_grad=False) → Tensor
Returns a new Tensor with data
as the tensor data. By default, the returned Tensor has the same torch.dtype
and torch.device
as this tensor.
Warning:
new_tensor()
always copies data
. If you have a Tensor data
and want to avoid a copy, use torch.Tensor.requires_grad_()
or torch.Tensor.detach()
. If you have a numpy array and want to avoid a copy, use torch.from_numpy()
.
Warning:
When data is a tensor x, new_tensor()
reads out ‘the data’ from whatever it is passed, and constructs a leaf variable. Therefore tensor.new_tensor(x)
is equivalent to x.clone().detach()
and tensor.new_tensor(x, requires_grad=True)
is equivalent to x.clone().detach().requires_grad_(True)
. The equivalents using clone()
and detach()
are recommended.
Parameters:
- data (array_like) – The returned Tensor copies
data
. - dtype (
torch.dtype
, optional) – the desired type of returned tensor. Default: if None, sametorch.dtype
as this tensor. - device (
torch.device
, optional) – the desired device of returned tensor. Default: if None, sametorch.device
as this tensor. - requires_grad (bool, optional) – If autograd should record operations on the returned tensor. Default:
False
.
Example:
代码语言:javascript复制>>> tensor = torch.ones((2,), dtype=torch.int8)
>>> data = [[0, 1], [2, 3]]
>>> tensor.new_tensor(data)
tensor([[ 0, 1],
[ 2, 3]], dtype=torch.int8)