运行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使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
Python操作MySQL模拟银行转账
Mar 12 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
python创建文件备份的脚本
Sep 11 Python
Python正则表达式指南 推荐
Oct 09 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
python sorted函数原理解析及练习
Feb 10 Python
python3处理word文档实例分析
Dec 01 Python
Python实现抖音热搜定时爬取功能
Mar 16 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
十天学会php之第四天
2006/10/09 PHP
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
js表单验证实例讲解
2016/03/31 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
利用python获取Ping结果示例代码
2017/07/06 Python
用Python逐行分析文件方法
2019/01/28 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
Java文件和目录(IO)操作
2014/08/26 面试题
努力学习演讲稿
2014/05/10 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
Python如何用re模块实现简易tokenizer
2022/05/02 Python