TensorFlow指定特定GPU以及占用显存的比例
参考链接: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显存。
参考链接
TensorFlow指定特定GPU以及占用显存的比例相关推荐
- batchsize和数据量设置比例_Keras - GPU ID 和显存占用设定步骤
初步尝试 Keras (基于 Tensorflow 后端)深度框架时, 发现其对于 GPU 的使用比较神奇, 默认竟然是全部占满显存, 1080Ti 跑个小分类问题, 就一下子满了. 而且是服务器上的 ...
- Keras - GPU ID 和显存占用设定
Keras - GPU ID 和显存占用设定 初步尝试 Keras (基于 Tensorflow 后端)深度框架时, 发现其对于 GPU 的使用比较神奇, 默认竟然是全部占满显存, 1080Ti 跑个 ...
- Linux--无进程却显示占用显存,GPU显存释放方法
文章目录 一.用nvidia-smi查看对应的进程pid 二.用nvidia-smi查不到对应的进程pid 参考链接: Linux–无进程却显示占用显存,GPU显存释放方法 程序结束掉,但GPU显存没 ...
- 【Ubuntu-Tensorflow】GPU设置及显存资源分配
最近笔者在做GPU显存资源分配的研究,发现在tf中gpu一些实用的方法和接口,共享出来,供大家参考学习,如有问题,欢迎留言讨论. 1.运行程序时,控制台设置GPU运行参数,占用显存全部资源 $ CUD ...
- 解决多卡加载预训练模型时,卡0总会比其他卡多占用显存,多卡占用显存不均
出现问题: 再跑stdc官方给出代码时,使用多卡加载pretrained模型时,卡0上比卡123多三个进程,卡123都只有一个进程,中断训练后卡0全部进程都中断.即卡0在正常训练时比卡123多占用显存 ...
- TensorFlow指定使用GPU 多块gpu
持续监控GPU使用情况命令: $ watch -n 10 nvidia-smi 1 一.指定使用某个显卡 如果机器中有多块GPU,tensorflow会默认吃掉所有能用的显存, 如果实验室多人公用一台 ...
- linux xorg占用显存过大
问题要治标更要治本好吧 这个问题的根本原因是电脑使用独显作为显示输出 所以很多教程Ctrl+Alt+F1进入文本模式,再用Ctrl+Alt+F7回来看,xorg占用的显存变小了.这只是治标,因为进入文 ...
- GPU显卡,显存位宽
显存位宽是显存在一个时钟周期内所能传送数据的位数,位数越大则瞬间所能传输的数据量越大,这是显存的重要参数之一. 1简介 显存位宽是显存在一个时钟周期内所能传送数据的位数,位数越大则瞬间所能传输的数据量 ...
- 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 ...
最新文章
- Cocos Creator实现的《点我+1》
- 洗礼灵魂,修炼python(68)--爬虫篇—番外篇之webbrowser模块
- 生物信息学搞计算机,生物信息学前景展望,谈谈感想(已经停止)
- 文件管理(NSfilemanager)
- 关于int.Parse()的异常
- Shank的大步小步算法(Shank‘s Baby-Step-Giant-Step Algorithm)
- Windows与Linux之间的文件自动同步
- boost::filesystem::directory_iterator() 出现段错误 Sementation fault
- 电脑突然显示只有C盘,其他磁盘不显示了----解决方法(很简单)
- java记事本写玫瑰花代码_第一个用记事本写的java代码
- 自动控制原理_卢京潮_自动控制一般概念及数学模型_学习笔记
- React组件化开发
- 《人类染色体与染色体病》学习笔记
- tcp 握手失败_什么是三次握手,握手为何要进行三次,如果握手失败会有什么后果...
- 学生请销假管理系统java_学生请假管理系统.doc
- richfaces 经典记录
- 自己动手该 博客 百度给的模板不好看,有没个性
- java程序员 女装_java程序员面试着装要求是什么?
- WIFI学习一(socket介绍)
- 2019届互联网校招薪资盘点!
热门文章
- 计算机磁盘分为硬盘和什么,fat32是什么?
- 目标检测网络中的 bottom-up 和 top-down理解
- 使用Python 正则匹配两个特定字符之间的字符方法
- my batis plus 小数没有0_大黄蜂3号Plus,妈咪保贝的强劲对手!
- mybatis generator使用_SpringBoot整合Mybatis实现自动生成代码 || 附阿里P8独家SpringBoot视频资料...
- snmp 获取设备类型_SNMP开发系列(三)SNMP Agent的实现
- python爬app_Python爬虫抓取手机APP的传输数据
- RiPro子主题V8.1开心版 小八子主题v8.1版
- 油墨研发打印机定制企业销售类网站源码 dedecms织梦模板 (带手机端)
- 通用企业网站源码 dedecms织梦模板 (带手机端)+PC+移动端+利于SEO优化