Tensorflow与Keras自适应使用显存方式


Posted in Python onJune 22, 2020

Tensorflow支持基于cuda内核与cudnn的GPU加速,Keras出现较晚,为Tensorflow的高层框架,由于Keras使用的方便性与很好的延展性,之后更是作为Tensorflow的官方指定第三方支持开源框架。

但两者在使用GPU时都有一个特点,就是默认为全占满模式。在训练的情况下,特别是分步训练时会导致显存溢出,导致程序崩溃。

可以使用自适应配置来调整显存的使用情况。

一、Tensorflow

1、指定显卡

代码中加入

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

或者在运行代码前,在终端

export CUDA_VISIBLE_DEVICES=0

2、为显存分配使用比例

在建立tf.Session加入设置数据(显存使用比例为1/3),但有时你虽然设置了使用上限,在程序需要更高显存时还是会越过该限制

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

3、自适应分配

会自适应分配显存,不会将显存全部分配导致资源浪费

config = tf.ConfigProto() 
config.gpu_options.allow_growth=True 
sess = tf.Session(config=config)

二、Keras

与tensorflow大差不差,就是将tf.Session配置转置Keras配置

1、指定显卡

代码中加入

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

或者在运行代码前,在终端

export CUDA_VISIBLE_DEVICES=0

2、为显存分配使用比例

import tensorflow as tf
import keras.backend.tensorflow_backend as KTF

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.333
session = tf.Session(config=config)
KTF.set_session(session)

3、自适应分配

import keras.backend.tensorflow_backend as KTF

config = tf.ConfigProto() 
config.gpu_options.allow_growth=True 
session = tf.Session(config=config)
KTF.set_session(session)

4、如有设置fit_generator

将多线程关闭

#可将
use_multiprocessing=True
#改为
use_multiprocessing=False

补充知识:Keras 自动分配显存,不占用所有显存

自动分配显存,不占用所有显存

import keras.backend.tensorflow_backend as KTF
import tensorflow as tf
import os
 
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
config = tf.ConfigProto()
config.gpu_options.allow_growth=True #不全部占满显存, 按需分配
sess = tf.Session(config=config)
KTF.set_session(sess)

以上这篇Tensorflow与Keras自适应使用显存方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python随机生成指定长度密码的方法
Apr 04 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
利用Python将数值型特征进行离散化操作的方法
Nov 06 Python
python实现批量注册网站用户的示例
Feb 22 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
通过实例解析python描述符原理作用
Jan 22 Python
Python虚拟环境venv用法详解
May 25 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
python本地文件服务器实例教程
May 02 Python
python数据类型强制转换实例详解
Jun 22 #Python
keras 指定程序在某块卡上训练实例
Jun 22 #Python
python Socket网络编程实现C/S模式和P2P
Jun 22 #Python
Python手动或自动协程操作方法解析
Jun 22 #Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 #Python
Python socket服务常用操作代码实例
Jun 22 #Python
Python如何实现后端自定义认证并实现多条件登陆
Jun 22 #Python
You might like
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
python绘制分布折线图的示例
2020/09/24 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
美国性感女装网站:bebe
2017/03/04 全球购物
教师先进工作者事迹材料
2014/05/01 职场文书
应届大学生自荐书
2014/06/17 职场文书
原告离婚代理词
2015/05/23 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书