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实现批量转换文件编码(批转换编码示例)
Jan 23 Python
python中nan与inf转为特定数字方法示例
May 11 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 Python
Python求均值,方差,标准差的实例
Jun 29 Python
python自定义时钟类、定时任务类
Feb 22 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
Python基础之字符串常见操作经典实例详解
Feb 26 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
Apr 08 Python
Python连接mysql方法及常用参数
Sep 01 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
python中spy++的使用超详细教程
Jan 29 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求一个网段开始与结束IP地址的方法
2015/07/09 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
javascript &&和||运算法的另类使用技巧
2009/11/28 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
Python列表推导式的使用方法
2013/11/21 Python
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
Python实现股市信息下载的方法
2015/06/15 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python求质数列表的例子
2019/11/24 Python
Python基于locals返回作用域字典
2020/10/17 Python
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
学年自我鉴定范文
2013/10/01 职场文书
企业形象策划方案
2014/05/29 职场文书
运动会宣传口号
2014/06/09 职场文书
公安学专业求职信
2014/07/27 职场文书
政协调研汇报材料
2014/08/15 职场文书
2014年教师节活动总结
2014/08/29 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python