ubuntu 上运行tensorflow时指定gpu

如果机器中有多块GPU,tensorflow会默认吃掉所有能用的显存,
如果实验室多人公用一台服务器,希望指定使用特定某块GPU。

查看机器上GPU情况

命令: nvidia-smi

功能:显示机器上gpu的情况

命令: nvidia-smi -l

功能:定时更新显示机器上gpu的情况

1、在终端执行程序时指定GPU

CUDA_VISIBLE_DEVICES=1 python your_file.py

这样在跑你的网络之前,告诉程序只能看到1号GPU,其他的GPU它不可见

可用的形式如下:

CUDA_VISIBLE_DEVICES=1           Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1         Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES="0,1"       Same as above, quotation marks are optional
CUDA_VISIBLE_DEVICES=0,2,3       Devices 0, 2, 3 will be visible; device 1 is masked
CUDA_VISIBLE_DEVICES=""          No GPU will be visible

在Python代码中指定GPU

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1" #使用第二块GPU

import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "0, 2"    # 使用第一, 三块GPU

设置定量的GPU使用量

config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存 
session = tf.Session(config=config)

设置最小的GPU使用量

config = tf.ConfigProto() 
config.gpu_options.allow_growth = True 
session = tf.Session(config=config)

参考:https://blog.csdn.net/weixin_38208741/article/details/78566079

猜你喜欢

转载自blog.csdn.net/weixin_43848267/article/details/88068197