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类装饰器用法实例
Jun 04 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
Python脚本获取操作系统版本信息
Dec 17 Python
分享vim python缩进等一些配置
Jul 02 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
python反转列表的三种方式解析
Nov 08 Python
Python递归实现打印多重列表代码
Feb 27 Python
Python classmethod装饰器原理及用法解析
Oct 17 Python
使用Python通过oBIX协议访问Niagara数据的示例
Dec 04 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 Python
Python用tkinter实现自定义记事本的方法详解
Mar 31 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
python中单下划线_的常见用法总结
2018/07/10 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Django 内置权限扩展案例详解
2019/03/04 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
python怎么判断素数
2020/07/01 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
如何高效率的查找一个月以内的数据
2012/04/15 面试题
百度软件工程师职位
2013/02/14 面试题
销售人员个人求职信
2013/09/26 职场文书
销售演讲稿范文
2014/01/08 职场文书
个人剖析材料范文
2014/09/30 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers