解决:指令运行前设置环境变量 (适用于多卡训练)
在输入训练指令前加上CUDA_VISIBLE_DEVICES=1,2
,即设置环境变量,程序只“看得见”第1、2块显卡,自然就不需要在使用第0块显卡了。但是有一个问题是,在设置环境变量之后,第1、2块显卡在程序的眼里就变成了第0、1块显卡,在后续使用中需要注意序号的问题,不然会出现invalid device ordinal的错误。使用成本最小,绝对不会出现cuda0在被禁用的情况下被调用的情况。
CUDA_VISIBLE_DEVICES=1,2 python train.py