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 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
Python实现PS图像明亮度调整效果示例
Jan 23 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
好的Python培训机构应该具备哪些条件
May 23 Python
redis之django-redis的简单缓存使用
Jun 07 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
Python实现个人微信号自动监控告警的示例
Jul 03 Python
在Django的View中使用asyncio的方法
Jul 12 Python
python可迭代对象去重实例
May 15 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
Feb 16 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 PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Python实现Linux中的du命令
2017/06/12 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
Python实现搜索算法的实例代码
2020/01/02 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
Java基础类库面试题
2013/09/04 面试题
员工拓展培训方案
2014/02/15 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
保送生自荐信范文
2015/03/26 职场文书
2015年体育部工作总结
2015/04/02 职场文书
药店营业员岗位职责
2015/04/14 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
java实现web实时消息推送的七种方案
2022/07/23 Java/Android