从实际的角度来看,只有一个小题外话:
import torch
dev = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
这个dev
现在知道cuda还是cpu。
当移到cuda时,如何处理模型和张量是有区别的。起初有点奇怪。
import torch
dev = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
t1 = torch.randn(1,2)
t2 = torch.randn(1,2).to(dev)
print(t1) # tensor([[-0.2678, 1.9252]])
print(t2) # tensor([[ 0.5117, -3.6247]], device='cuda:0')
t1.to(dev)
print(t1) # tensor([[-0.2678, 1.9252]])
print(t1.is_cuda) # False
t1=t1.to(dev)
print(t1) # tensor([[-0.2678, 1.9252]], device='cuda:0')
print(t1.is_cuda) # True
model = M() # not on cuda
model.to(dev) # is on cuda (all parameters)
print(next(model.parameters()).is_cuda) #True
这一切都是棘手的,一旦理解就可以帮助您以更少的调试快速处理。
0
我想知道
pytorch
是否正在使用我的GPU。在此过程中,可以使用nvidia-smi
来检测GPU是否有任何活动,但是我想要用python
脚本编写的内容。有办法吗?