TensorFlow 显存使用机制详解


Posted in Python onFebruary 03, 2020

默认情况下,TensorFlow 会映射进程可见的所有 GPU 的几乎所有 GPU 内存(取决于 CUDA_VISIBLE_DEVICES)。通过减少内存碎片,可以更有效地使用设备上相对宝贵的 GPU 内存资源。

在某些情况下,最理想的是进程只分配可用内存的一个子集,或者仅根据进程需要增加内存使用量。 TensorFlow 在 Session 上提供两个 Config 选项来进行控制。

(1) : 自主申请所用的内存空间

第一个是 allow_growth 选项,它试图根据运行时的需要来分配 GPU 内存:它刚开始分配很少的内存,随着 Session 开始运行并需要更多 GPU 内存,我们会扩展 TensorFlow 进程所需的 GPU 内存区域。请注意,我们不会释放内存,因为这可能导致出现更严重的内存碎片情况。要开启此选项,请通过以下方式在 ConfigProto 中设置选项:

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

(2) 规定 可用最大内存占单个GPU的总内存比例

第二个是 per_process_gpu_memory_fraction 选项,它可以决定每个可见 GPU 应分配到的内存占总内存量的比例。例如,您可以通过以下方式指定 TensorFlow 仅分配每个 GPU 总内存的 40%:

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)

如要真正限制 TensorFlow 进程可使用的 GPU 内存量,这非常实用。

以上这篇TensorFlow 显存使用机制详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python SQLite3数据库操作类分享
Jun 10 Python
python中xrange用法分析
Apr 15 Python
Python实现控制台输入密码的方法
May 29 Python
Python实现查找系统盘中需要找的字符
Jul 14 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
python 获取网页编码方式实现代码
Mar 11 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
Dec 20 Python
Python发送手机动态验证码代码实例
Feb 28 Python
django使用channels实现通信的示例
Oct 19 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 Python
总结三种用 Python 作为小程序后端的方式
May 02 Python
opencv python如何实现图像二值化
Feb 03 #Python
python实现人机猜拳小游戏
Feb 03 #Python
如何使用selenium和requests组合实现登录页面
Feb 03 #Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 #Python
Tensorflow 实现释放内存
Feb 03 #Python
手把手教你进行Python虚拟环境配置教程
Feb 03 #Python
解决TensorFlow GPU版出现OOM错误的问题
Feb 03 #Python
You might like
php adodb介绍
2009/03/19 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
python实现超简单端口转发的方法
2015/03/13 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
2016/05/24 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
python中turtle库的简单使用教程
2020/11/11 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
酒店销售主管岗位职责
2014/01/04 职场文书
大学生职业生涯规划书前言
2014/01/09 职场文书
优秀公益广告词大全
2014/03/19 职场文书
个人函授自我鉴定
2014/03/25 职场文书