运行tensorflow python程序,限制对GPU和CPU的占用操作


Posted in Python onFebruary 06, 2020

一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用。并且,一般我们的程序也用不了所有的GPU资源,只是强行霸占着,大部分资源都不会用到,也不会提升运行速度。

使用nvidia-smi可以查看本机的GPU使用情况,如下图,这里可以看出,本机的GPU型号是K80,共有两个K80,四块可用(一个K80包括两块K40)。

1、如果是只需要用某一块或某几块GPU,可以在运行程序时,利用如下命令运行:CUDA_VISIBLE_DEVICES=0,1 python test.py

这里表示只有GPU 0和1对程序可见,因此也就限制了程序只能用GPU 0和1

同样,也可以在代码里指定

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"

如果想只用CPU,不用CPU来运行程序,可以用如下命令(所有GPU都不可见):

CUDA_VISIBLE_DEVICES='' python test.py

或者是

CUDA_VISIBLE_DEVICES="-1" python test.py

2、让tensorflow只按需索取显存,如下代码所示

#only minimum use gpu
gpu_config = tf.ConfigProto()
gpu_config.gpu_options.allow_growth = True
with tf.Session(config = gpu_config) as sess:

前面是对GPU的限制,那如果不用GPU,只用CPU呢?如何限制对CPU的使用呢?

前面也有提到,如果使用命令CUDA_VISIBLE_DEVICES=“”python test.py可以只使用CPU,那如果想只使用部分CPU呢?可以通过如下代码限制

cpu_config = tf.ConfigProto(intra_op_parallelism_threads = 8, inter_op_parallelism_threads = 8, device_count = {'CPU': 8})
with tf.Session(config = cpu_config) as sess:

以上这篇运行tensorflow python程序,限制对GPU和CPU的占用操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的getopt函数使用详解
Jul 28 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
Python 实现一个颜色色值转换的小工具
Dec 06 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
django 将model转换为字典的方法示例
Oct 16 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
简单了解python高阶函数map/reduce
Jun 28 Python
python 获取等间隔的数组实例
Jul 04 Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 Python
python实现计算器功能
Oct 31 Python
Python读取JSON数据操作实例解析
May 18 Python
python多线程方法详解
Jan 18 Python
如何在django中添加日志功能
Feb 06 #Python
keras tensorflow 实现在python下多进程运行
Feb 06 #Python
Scrapy框架实现的登录网站操作示例
Feb 06 #Python
Tensorflow 多线程设置方式
Feb 06 #Python
Scrapy框架基本命令与settings.py设置
Feb 06 #Python
python opencv圆、椭圆与任意多边形的绘制实例详解
Feb 06 #Python
Python输出指定字符串的方法
Feb 06 #Python
You might like
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
php intval的测试代码发现问题
2008/07/27 PHP
在PHP中使用反射技术的架构插件使用说明
2010/05/18 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
2015/02/10 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
详解django的serializer序列化model几种方法
2018/10/16 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
详解Python打包分发工具setuptools
2019/08/05 Python
python装饰器练习题及答案
2019/11/01 Python
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
毕业生找工作的自我评价
2013/10/18 职场文书
好家长事迹材料
2014/01/23 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
中秋晚会活动方案
2014/08/31 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
婚礼父母答谢词
2015/01/04 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers