参考链接:https://blog.csdn.net/m0_37041325/article/details/77488981

因为LZ是使用GPU服务器跑TensorFlow,而TensorFlow默认的是占用所有GPU,于是为了不影响其他同学使用GPU,于是就试验和总结了一下TensorFlow指定GPU的方法。

环境

系统:Ubuntu14.04

TensorFlow:v1.3

GPU 8个GTX1080,第一列的0~7的数是GPU的序号

一.设置指定GPU

1.一劳永逸的方法,直接在~/.bashrc中设置环境变量

CUDA_VISIBLE_DEVICES

(1)vim ~/.bashrc

(2)在.bashrc.最下方添加

export  CUDA_VISIBLE_DEVICES='XX'(这个xx是GPU的序号,比如我这边服务器上有8个GTX1080序号是0~7,可以填入任意多个序号,序号间用逗号隔开)

(3)source ~/.bashrc

这样只要每次你用TensorFlow跑程序,都只会占用指定的GPU

2.在终端设置使用的GPU

如果用方法一,虽然方便,但有的时候还是需要指定其他的GPU,这时可以这样,例如

CUDA_VISIBLE_DEVICES=2 python test.py

这样就只会使用序号为2的GPU

3.在程序中指定使用的GPU

import os
os.environ["CUDA_VISIBLE_DEVICES"]=‘6‘,‘7’

这里就设置了使用序号为6,7两个的GPU

事实上这3种方法都是为了设置环境变量CUDA_VISIBLE_DEVICES,方法一可以分别和方法二,三结合使用,比如虽然方法一设置了CUDA_VISIBLE_DEVICES=2,后面再用方法二设置使用GPU 0,执行的时候只使用GPU 0。

二.设置占用每个GPU的比例

1.定量设置显存

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

这样运行TensorFlow程序时,每个使用的GPU中,占用的显存都不超过总显存的0.7.

比如我的GTX1080显存是8G左右,然后占用的显存应该是0.7*8=5.6G左右,得到的结果5.9G,差不多。

2.按需设置显存

gpu_options = tf.GPUOptions(allow_growth=True)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

这样设置以后,程序就会按需占用GPU显存。

参考链接

https://stackoverflow.com/questions/37893755/tensorflow-set-cuda-visible-devices-within-jupyter
https://stackoverflow.com/questions/36668467/change-default-gpu-in-tensorflow
http://www.cnblogs.com/darkknightzh/p/6591923.html

TensorFlow指定特定GPU以及占用显存的比例相关推荐

  1. batchsize和数据量设置比例_Keras - GPU ID 和显存占用设定步骤

    初步尝试 Keras (基于 Tensorflow 后端)深度框架时, 发现其对于 GPU 的使用比较神奇, 默认竟然是全部占满显存, 1080Ti 跑个小分类问题, 就一下子满了. 而且是服务器上的 ...

  2. Keras - GPU ID 和显存占用设定

    Keras - GPU ID 和显存占用设定 初步尝试 Keras (基于 Tensorflow 后端)深度框架时, 发现其对于 GPU 的使用比较神奇, 默认竟然是全部占满显存, 1080Ti 跑个 ...

  3. Linux--无进程却显示占用显存,GPU显存释放方法

    文章目录 一.用nvidia-smi查看对应的进程pid 二.用nvidia-smi查不到对应的进程pid 参考链接: Linux–无进程却显示占用显存,GPU显存释放方法 程序结束掉,但GPU显存没 ...

  4. 【Ubuntu-Tensorflow】GPU设置及显存资源分配

    最近笔者在做GPU显存资源分配的研究,发现在tf中gpu一些实用的方法和接口,共享出来,供大家参考学习,如有问题,欢迎留言讨论. 1.运行程序时,控制台设置GPU运行参数,占用显存全部资源 $ CUD ...

  5. 解决多卡加载预训练模型时,卡0总会比其他卡多占用显存,多卡占用显存不均

    出现问题: 再跑stdc官方给出代码时,使用多卡加载pretrained模型时,卡0上比卡123多三个进程,卡123都只有一个进程,中断训练后卡0全部进程都中断.即卡0在正常训练时比卡123多占用显存 ...

  6. TensorFlow指定使用GPU 多块gpu

    持续监控GPU使用情况命令: $ watch -n 10 nvidia-smi 1 一.指定使用某个显卡 如果机器中有多块GPU,tensorflow会默认吃掉所有能用的显存, 如果实验室多人公用一台 ...

  7. linux xorg占用显存过大

    问题要治标更要治本好吧 这个问题的根本原因是电脑使用独显作为显示输出 所以很多教程Ctrl+Alt+F1进入文本模式,再用Ctrl+Alt+F7回来看,xorg占用的显存变小了.这只是治标,因为进入文 ...

  8. GPU显卡,显存位宽

    显存位宽是显存在一个时钟周期内所能传送数据的位数,位数越大则瞬间所能传输的数据量越大,这是显存的重要参数之一. 1简介 显存位宽是显存在一个时钟周期内所能传送数据的位数,位数越大则瞬间所能传输的数据量 ...

  9. watch和nvidia-smi命令实时查看GPU使用、显存占用情况

    方法一:watch -n 0.5 nvidia-smi watch -n 0.5 nvidia-smi:0.5代表每隔0.5秒刷新一次GPU使用情况,同理,每隔1秒刷新,则使用:watch -n 1 ...

最新文章

  1. Cocos Creator实现的《点我+1》
  2. 洗礼灵魂,修炼python(68)--爬虫篇—番外篇之webbrowser模块
  3. 生物信息学搞计算机,生物信息学前景展望,谈谈感想(已经停止)
  4. 文件管理(NSfilemanager)
  5. 关于int.Parse()的异常
  6. Shank的大步小步算法(Shank‘s Baby-Step-Giant-Step Algorithm)
  7. Windows与Linux之间的文件自动同步
  8. boost::filesystem::directory_iterator() 出现段错误 Sementation fault
  9. 电脑突然显示只有C盘,其他磁盘不显示了----解决方法(很简单)
  10. java记事本写玫瑰花代码_第一个用记事本写的java代码
  11. 自动控制原理_卢京潮_自动控制一般概念及数学模型_学习笔记
  12. React组件化开发
  13. 《人类染色体与染色体病》学习笔记
  14. tcp 握手失败_什么是三次握手,握手为何要进行三次,如果握手失败会有什么后果...
  15. 学生请销假管理系统java_学生请假管理系统.doc
  16. richfaces 经典记录
  17. 自己动手该 博客 百度给的模板不好看,有没个性
  18. java程序员 女装_java程序员面试着装要求是什么?
  19. WIFI学习一(socket介绍)
  20. 2019届互联网校招薪资盘点!

热门文章

  1. 计算机磁盘分为硬盘和什么,fat32是什么?
  2. 目标检测网络中的 bottom-up 和 top-down理解
  3. 使用Python 正则匹配两个特定字符之间的字符方法
  4. my batis plus 小数没有0_大黄蜂3号Plus,妈咪保贝的强劲对手!
  5. mybatis generator使用_SpringBoot整合Mybatis实现自动生成代码 || 附阿里P8独家SpringBoot视频资料...
  6. snmp 获取设备类型_SNMP开发系列(三)SNMP Agent的实现
  7. python爬app_Python爬虫抓取手机APP的传输数据
  8. RiPro子主题V8.1开心版 小八子主题v8.1版
  9. 油墨研发打印机定制企业销售类网站源码 dedecms织梦模板 (带手机端)
  10. 通用企业网站源码 dedecms织梦模板 (带手机端)+PC+移动端+利于SEO优化