torch.Tensor.to (original) (raw)
Performs Tensor dtype and/or device conversion. A torch.dtype and torch.device are inferred from the arguments of self.to(*args, **kwargs)
.
Note
If self
requires gradients (requires_grad=True
) but the targetdtype
specified is an integer type, the returned tensor will implicitly set requires_grad=False
. This is because only tensors with floating-point or complex dtypes can require gradients.
tensor = torch.randn(2, 2) # Initially dtype=float32, device=cpu tensor.to(torch.float64) tensor([[-0.5044, 0.0005], [ 0.3310, -0.0584]], dtype=torch.float64)
cuda0 = torch.device('cuda:0') tensor.to(cuda0) tensor([[-0.5044, 0.0005], [ 0.3310, -0.0584]], device='cuda:0')
tensor.to(cuda0, dtype=torch.float64) tensor([[-0.5044, 0.0005], [ 0.3310, -0.0584]], dtype=torch.float64, device='cuda:0')
other = torch.randn((), dtype=torch.float64, device=cuda0) tensor.to(other, non_blocking=True) tensor([[-0.5044, 0.0005], [ 0.3310, -0.0584]], dtype=torch.float64, device='cuda:0')