torch.as_tensor¶
- torch.as_tensor(data: Any, dtype: Optional[dtype] = None, device: Optional[DeviceLikeType]) Tensor ¶
Converts
data
into a tensor, sharing data and preserving autograd history if possible.If
data
is already a tensor with the requested dtype and device thendata
itself is returned, but ifdata
is a tensor with a different dtype or device then it’s copied as if using data.to(dtype=dtype, device=device).If
data
is a NumPy array (an ndarray) with the same dtype and device then a tensor is constructed usingtorch.from_numpy()
.If
data
is a CuPy array, the returned tensor will be located on the same device as the CuPy array unless specifically overwritten bydevice
or a default device.See also
torch.tensor()
never shares its data and creates a new “leaf tensor” (see Autograd mechanics).- Parameters
data (array_like) – Initial data for the tensor. Can be a list, tuple, NumPy
ndarray
, scalar, and other types.dtype (
torch.dtype
, optional) – the desired data type of returned tensor. Default: ifNone
, infers data type fromdata
.device (
torch.device
, optional) – the device of the constructed tensor. If None and data is a tensor then the device of data is used. If None and data is not a tensor then the result tensor is constructed on the current device.
Example:
>>> a = numpy.array([1, 2, 3]) >>> t = torch.as_tensor(a) >>> t tensor([ 1, 2, 3]) >>> t[0] = -1 >>> a array([-1, 2, 3]) >>> a = numpy.array([1, 2, 3]) >>> t = torch.as_tensor(a, device=torch.device('cuda')) >>> t tensor([ 1, 2, 3]) >>> t[0] = -1 >>> a array([1, 2, 3])