os模块指定gpu无效

使用Pytorch训练神经网络的时候,默认都是使用0卡进行训练。如果当0卡有人用了,那么我们要指定其他gpu。

指定gpu我经常是使用下面两种方法:
1.在终端指定:

CUDA_VISIBLE_DEVICES=1 python train.py

2.在代码里指定(这种方法也方便代码调试):

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"

但是有时候会出现指定了某个gpu但却无法生效的情况,需要检查一下下面两种情况。

1.import os是否放在了import torch后面。如果在导入torch前没有指定gpu,那么就会使用默认的卡。一般都是这种疏忽导致指定失效的。
2.如果在代码开头就指定了gpu,但还是没用的话,需要看一下在其他py文件是否也导入了os,然后在后面再指定一次gpu。这是我走过了一个小坑,那天愣是排查了半个小时。到现在我也不知道为什么会这样。

你可能感兴趣的:(os,pytorch)