torch.as_tensor#
- torch.as_tensor(data: Any, dtype: Optional[dtype] = None, device: Optional[DeviceLikeType]) Tensor#
Converts
datainto a tensor, sharing data and preserving autograd history if possible.If
datais already a tensor with the requested dtype and device thendataitself is returned, but ifdatais a tensor with a different dtype or device then it’s copied as if using data.to(dtype=dtype, device=device).If
datais a NumPy array (an ndarray) with the same dtype and device then a tensor is constructed usingtorch.from_numpy().If
datais a CuPy array, the returned tensor will be located on the same device as the CuPy array unless specifically overwritten bydeviceor a default device. The device of the CuPy array is inferred from the pointer of the array using cudaPointerGetAttributes unlessdeviceis provided with an explicit device index.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])