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 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
python生成随机图形验证码详解
Nov 08 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
Python使用Pickle库实现读写序列操作示例
Jun 15 Python
Python面向对象之类的封装操作示例
Jun 08 Python
python简单鼠标自动点击某区域的实例
Jun 25 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
Python代码中如何读取键盘录入的值
May 27 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正则走开
2008/03/15 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
Python写入数据到MP3文件中的方法
2015/07/10 Python
python将unicode转为str的方法
2017/06/21 Python
Python实现购物程序思路及代码
2017/07/24 Python
python是否适合网页编程详解
2019/10/04 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
厨房领班竞聘演讲稿
2014/04/23 职场文书
公司捐款倡议书
2014/05/14 职场文书
个人自荐书怎么写
2015/03/26 职场文书
CAD实训总结范文
2015/08/03 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
java基础——多线程
2021/07/03 Java/Android
Golang jwt身份认证
2022/04/20 Golang