怎么切换使用显卡,怎么切换用哪个卡的流量
前言,在pytorch中,当服务器上的gpu被占用时,很多时候我们想先用cpu调试代码,所以需要在gpu和cpu之间切换。
方法一:x.to (device)以device为可变参数,建议加载argparse:
使用gpu时:device=cudax.to(device) # x是张量,传递给cuda使用cpu时:device=cpux.to(device)方法二:使用x.cuda() CUDA_VISIBLE_DEVICES很多帖子都说x.cuda()和x .但是,其实可以用命令行参数CUDA_VISIBLE_DEVICES进行切换。
在服务器上创建python脚本t.py:
导入torch print(torch . cuda . device _ count())#可用GPU数量print(torch . cuda . is _ available())# GPU是否可用,先看一下正常运行情况:
执行命令:python t.py输出结果:因为服务器上有两个GPU,所以是我们想要的结果。2如果你想只使用一个gpu,你只需要在执行前添加一个参数:
Da _ visible _ devices=0 pythont.py比如我们要用gpu 0。接下来,我们来看看输出是什么:是!下面的程序gpu~ 1True里真的只有一个GPU可见,我们要用cpu怎么办?
da _ visible _ devices= python t . py输出结果:可以看到,虽然服务器上有2个CPU,但是通过设置执行参数,我们在程序中无法成功看到它们!0所以,回到正题,我们在使用x.cuda()分配gpu的时候,只需要使用torch.cuda.is_available()添加一个判断,当我们要使用cpu的时候,就可以通过执行程序的命令行参数来控制:
如果torch . cuda . is _ available():x=x . cuda()