torch.Tensor.to¶
- Tensor.to(*args, **kwargs) Tensor¶
执行张量数据类型和/或设备转换。
torch.dtype和torch.device从self.to(*args, **kwargs)的参数推断得出。注意
如果
self张量已经具有正确的torch.dtype和torch.device,则返回self。否则,返回的张量是self的副本,具有所需的torch.dtype和torch.device。以下是调用
to的方法- to(dtype, non_blocking=False, copy=False, memory_format=torch.preserve_format) Tensor
返回具有指定
dtype的张量- 参数
memory_format (
torch.memory_format,可选):返回的张量的所需内存格式。默认值:torch.preserve_format。
- torch.to(device=None, dtype=None, non_blocking=False, copy=False, memory_format=torch.preserve_format) Tensor
返回具有指定
device和(可选)dtype的张量。如果dtype为None,则推断为self.dtype。当non_blocking时,如果可能,尝试相对于主机异步转换,例如,将具有固定内存的 CPU 张量转换为 CUDA 张量。当设置copy时,即使张量已经匹配所需的转换,也会创建一个新的张量。- 参数
memory_format (
torch.memory_format,可选):返回的张量的所需内存格式。默认值:torch.preserve_format。
- torch.to(other, non_blocking=False, copy=False) Tensor
返回一个与张量
other具有相同torch.dtype和torch.device的张量。当non_blocking为 True 时,如果可能,尝试相对于主机异步转换,例如,将具有固定内存的 CPU 张量转换为 CUDA 张量。当设置了copy时,即使张量已经匹配所需的转换,也会创建一个新的张量。
示例
>>> 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')