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中内置的NotImplemented类型的用法
Mar 31 Python
python2.7的编码问题与解决方法
Oct 04 Python
python定向爬取淘宝商品价格
Feb 27 Python
python SMTP实现发送带附件电子邮件
May 22 Python
python实现飞机大战微信小游戏
Mar 21 Python
使用Python如何测试InnoDB与MyISAM的读写性能
Sep 18 Python
python简单验证码识别的实现方法
May 10 Python
numpy:np.newaxis 实现将行向量转换成列向量
Nov 30 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
Django DRF认证组件流程实现原理详解
Aug 17 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/01/07 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
python实现月食效果实例代码
2019/06/18 Python
简单了解python元组tuple相关原理
2019/12/02 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
高中语文教学反思
2014/01/16 职场文书
五型班组建设方案
2014/02/10 职场文书
《花木兰》教学反思
2014/04/09 职场文书
社团活动总结格式
2014/08/29 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
Python基础之Socket通信原理
2021/04/22 Python
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript