【Tensorflow】指定GPU训练

以下假设使用第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训练_第1张图片


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)

【Tensorflow】指定GPU训练_第2张图片 

连服务器有时候会出现 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

你可能感兴趣的:(Tensorflow,&,Pytorch)