无法将 torch.Tensor 转移到 torch.cuda.Tensor
Cannot transfer torch.Tensor to torch.cuda.Tensor
我用下面的代码把torch.Tensor变成torch.cuda.Tensor
import torch
import numpy as np
a = np.random.randn(1, 1, 2, 3)
t2 = torch.tensor(a)
t2 = t2.cuda()
t3 = torch.tensor(a, device=torch.device('cuda'))
print(type(t3), t3.device, type(t2), t2.device)
它的输出是
<class 'torch.Tensor'> cuda:0 <class 'torch.Tensor'> cuda:0
我预计 class 是 'torch.cuda.Tensor'。我不知道为什么会这样。
我的torch版本是1.6.0对应的cuda版本是10.2
那是因为PyTorch 1.6.0中没有class如torch.cuda.Tensor
print(type(t3), t3.device, type(t2), t2.device)
中的 t3.device
和 t2.device
打印 cuda:0
这意味着您的张量已经在 GPU 上了。
我用下面的代码把torch.Tensor变成torch.cuda.Tensor
import torch
import numpy as np
a = np.random.randn(1, 1, 2, 3)
t2 = torch.tensor(a)
t2 = t2.cuda()
t3 = torch.tensor(a, device=torch.device('cuda'))
print(type(t3), t3.device, type(t2), t2.device)
它的输出是
<class 'torch.Tensor'> cuda:0 <class 'torch.Tensor'> cuda:0
我预计 class 是 'torch.cuda.Tensor'。我不知道为什么会这样。 我的torch版本是1.6.0对应的cuda版本是10.2
那是因为PyTorch 1.6.0中没有class如torch.cuda.Tensor
print(type(t3), t3.device, type(t2), t2.device)
中的 t3.device
和 t2.device
打印 cuda:0
这意味着您的张量已经在 GPU 上了。