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')