以下假设使用第3块GPU训练
- 1.在代码中添加
第一种方法:
tf.device(‘/gpu:2’)
第二种方法:
import os
os.environ[‘CUDA_VISIBLE_DEVICES’]=’2’
如果要指定1,3块GPU来训练,则:
os.environ[‘CUDA_VISIBLE_DEVICES’]=’0,2’
- 2.在命令中添加
CUDA_VISIBLE_DEVICES=2 python train.py
Tensorflow指定显卡GPU运行
有些工作站配备了不止一块显卡,比如4路泰坦。TensorFlow会默认使用第0块GPU,而以TensorFlow为Backend的Keras会默认使用全部GPU资源。有时候有多个人需要跑实验,如果一个人占用了全部GPU,其他人就不能跑了。因此需要能够指定使用特定的GPU。
具体地,只需要在主代码的开头插入如下代码,即可指定使用第3块(从0开始计数)GPU。
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "3" (第三块的话上文的叙述应该这里是2)
可以使用nvidia-smi来查看GPU占用情况。
有一点需要注意的是,代码中指定的编号与nvidia-smi中显示的编号是相反的,即3、2、1、0分别对应着0、1、2、3。
tensorflow选择gpu (CUDA_VISIBLE_DEVICES=gpu_id)
连服务器有时候会出现 out of memory
解决方法:换用空闲的gpu
1. 查看GPU
nvidia-smi -L
2. 查看7号GPU
nvidia-smi -q -i 7
如果只看memory情况。可以用:nvidia-smi -q -i 7 -d MEMORY