tensor数据的cuda方法返回变量值的device为cuda,并不会直接移动当前变量到GPU。
举例:
B = A.cuda()
其中A为CPU变量,那么执行上面语句后,A依旧在CPU上,创建的新的数据B是A在GPU上面的拷贝,当然单独执行A.cuda(),A也依旧在CPU上面。
import torch
A = torch.empty(4,1,2,2)
print(A.device)
print(A)
print(A.cuda().device)
print(A.cuda())
# A.cuda()
A = A.cuda()
print(A.device)
# A = A.to('cuda:0')