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 相关文章推荐
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
Python网络爬虫项目:内容提取器的定义
Oct 25 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
Python操作MySQL模拟银行转账
Mar 12 Python
python os用法总结
Jun 08 Python
python 遍历列表提取下标和值的实例
Dec 25 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
Python数据类型之Tuple元组实例详解
May 08 Python
python 实现返回一个列表中出现次数最多的元素方法
Jun 11 Python
python爬取盘搜的有效链接实现代码
Jul 20 Python
Win系统PyQt5安装和使用教程
Dec 25 Python
Python 改变数组类型为uint8的实现
Apr 09 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动态生成函数示例
2014/03/21 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
介绍Python中几个常用的类方法
2015/04/08 Python
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
python 下载文件的几种方法汇总
2021/01/06 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
缓刑人员思想汇报500字
2014/09/12 职场文书
大学副班长竞选稿
2015/11/21 职场文书
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL