解决keras backend 越跑越慢问题
Keras运行迭代一定代数以后,速度越来越慢,经检查是因为在循环迭代过程中增加了新的计算节点,导致计算节点越来越多,内存被占用完,速度变慢。
判断是否在循环迭代过程中增加了新的计算节点,可以用下面的语句:
tf.Graph.finalize()
如果增加了新的计算节点,就会报错,如果没有报错,说明没有增加计算节点。
补充知识:win10下pytorch,tensorflow,keras+tf速度对比
采用GitHub上的代码
运行类似vgg模型,在cifar10上训练,结果朋友torch与tensorflow速度相当,远远快过keras。
| pytorch | tensorflow | keras+tensorflow | |
| version | 0.4.0 | 1.8.0 | Keras: 2.1.6 Tensorflow: 1.8.0 |
| train time: | 1min 14s | 1min 9s | 1min 51s |
| evaluate time: | 378 ms | 9.4 s | 826 ms |
以上这篇解决keras backend 越跑越慢问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python读取大文件越来越慢的原因与解决
背景: 今天同事写代码,用python读取一个四五百兆的文件,然后做一串逻辑上很直观的处理.结果处理了一天还没有出来结果.问题出在哪里呢? 解决: 1. 同事打印了在不同时间点的时间,在需要的地方插入如下代码: print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 发现一个规律,执行速度到后面时间越来越长,也就是处理速度越来越慢. 2. 为什么会越来越慢呢? 1)可能原因1,GC 的问题,有篇文章里面写,pyth
-
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
在使用完模型之后,添加这两行代码即可清空之前model占用的内存: import tensorflow as tf from keras import backend as K K.clear_session() tf.reset_default_graph() 补充知识:keras 多个模型测试阶段速度越来越慢问题的解决方法 问题描述 在实际应用或比赛中,经常会用到交叉验证(10倍或5倍)来提高泛化能力,这样在预测时需要加载多个模型.常用的方法为 mods = [] from keras.ut
-
Tensorflow训练模型越来越慢的2种解决方案
1 解决方案 [方案一] 载入模型结构放在全局,即tensorflow会话外层. '''载入模型结构:最关键的一步''' saver = tf.train.Saver() '''建立会话''' with tf.Session() as sess: for i in range(STEPS): '''开始训练''' _, loss_1, acc, summary = sess.run([train_op_1, train_loss, train_acc, summary_op], feed_dic
-
解决keras backend 越跑越慢问题
Keras运行迭代一定代数以后,速度越来越慢,经检查是因为在循环迭代过程中增加了新的计算节点,导致计算节点越来越多,内存被占用完,速度变慢. 判断是否在循环迭代过程中增加了新的计算节点,可以用下面的语句: tf.Graph.finalize() 如果增加了新的计算节点,就会报错,如果没有报错,说明没有增加计算节点. 补充知识:win10下pytorch,tensorflow,keras+tf速度对比 采用GitHub上的代码 运行类似vgg模型,在cifar10上训练,结果朋友torch与ten
-
轻松解决JavaScript定时器越走越快的问题
解决JavaScript定时器越走越快的问题 之前在项目中写了定时器来做循环播放,但是总是会有越走越快的问题,开始是以为前后的HTML代码拼接的有问题,时间紧急的情况下反复改了很多也没什么效果,后来发现是js定时器的问题,在这里记录一下. (setinterval)多次初始化 使用js定时器(setinterval)首要的问题就是要记得清除,即调用(clearInterval)方法,由于没有使用定时器的经验,我一开始是没有清除定时器,程序每一次初始化的时候都调用一次定时器,之前的定时器实例没有被
-
解决Keras 与 Tensorflow 版本之间的兼容性问题
在利用Keras进行实验的时候,后端为Tensorflow,出现了以下问题: 1. 服务器端激活Anaconda环境跑程序时,实验结果很差. 环境:tensorflow 1.4.0,keras 2.1.5 2. 服务器端未激活Anaconda环境跑程序时,实验结果回到正常值. 环境:tensorflow 1.7.0,keras 2.0.8 3. 自己PC端跑相同程序时,实验结果回到正常值. 环境:tensorflow 1.6.0,keras 2.1.5 怀疑实验结果的异常性是由于Keras和Te
-
解决Keras 自定义层时遇到版本的问题
在2.2.0版本前, from keras import backend as K from keras.engine.topology import Layer class MyLayer(Layer): def __init__(self, output_dim, **kwargs): self.output_dim = output_dim super(MyLayer, self).__init__(**kwargs) def build(self, input_shape): # 为该层
-
解决Keras 中加入lambda层无法正常载入模型问题
刚刚解决了这个问题,现在记录下来 问题描述 当使用lambda层加入自定义的函数后,训练没有bug,载入保存模型则显示Nonetype has no attribute 'get' 问题解决方法: 这个问题是由于缺少config信息导致的.lambda层在载入的时候需要一个函数,当使用自定义函数时,模型无法找到这个函数,也就构建不了. m = load_model(path,custom_objects={"reduce_mean":self.reduce_mean,"sli
-
解决Keras中Embedding层masking与Concatenate层不可调和的问题
问题描述 我在用Keras的Embedding层做nlp相关的实现时,发现了一个神奇的问题,先上代码: a = Input(shape=[15]) # None*15 b = Input(shape=[30]) # None*30 emb_a = Embedding(10, 5, mask_zero=True)(a) # None*15*5 emb_b = Embedding(20, 5, mask_zero=False)(b) # None*30*5 cat = Concatenate(axi
-
解决Keras使用GPU资源耗尽的问题
我们在使用GPU资源进行训练的时候,可能会发生资源耗尽的情况,那么在在这种情况,我们需要对GPU的资源进行合理的安排,具体使用办法如下: 框架:Tensorflow和Keras 方法 import tensorflow as tf import keras.backend.tensorflow_backend as KTF config = tf.ConfigProto() config.gpu_options.allow_growth=True #不全部占满显存, 按需分配 sess = tf
-
解决keras,val_categorical_accuracy:,0.0000e+00问题
问题描述: 在利用神经网络进行分类和识别的时候,使用了keras这个封装层次比较高的框架,backend使用的是tensorflow-cpu. 在交叉验证的时候,出现 val_categorical_accuracy: 0.0000e+00的问题. 问题分析: 首先,弄清楚,训练集.验证集.测试集的区别,验证集是从训练集中提前拿出一部分的数据集.在keras中,一般都是使用这种方式来指定验证集占训练集和的总大小. validation_split=0.2 比如,经典的数据集MNIST,共有600
-
解决Keras中循环使用K.ctc_decode内存不释放的问题
如下一段代码,在多次调用了K.ctc_decode时,会发现程序占用的内存会越来越高,执行速度越来越慢. data = generator(...) model = init_model(...) for i in range(NUM): x, y = next(data) _y = model.predict(x) shape = _y.shape input_length = np.ones(shape[0]) * shape[1] ctc_decode = K.ctc_decode(_y,
随机推荐
- PHP实现重载的常用方法实例详解
- JavaScript高级程序设计(第3版)学习笔记 概述
- Java IO流对象的序列化和反序列化实例详解
- iOS如何去掉导航栏(UINavigationBar)下方的横线
- C#实现自定义Dictionary类实例
- PHP中防止直接访问或查看或下载config.php文件的方法
- python根据京东商品url获取产品价格
- FileSystemObject处理文件
- android实现raw文件夹导入数据库代码
- jQuery图片轮播插件——前端开发必看
- jquery简单倒计时实现方法
- JS求平均值的小例子
- 什么是分表和分区 MySql数据库分区和分表方法
- 模仿动画的放大缩小容器
- IIS网站属性里,只有(全部未分配),找不到IP地址的解决方法
- java中如何获取相关参数
- php新建文件自动编号的思路与实现
- Node 搭建一个静态资源服务器的实现
- Jupyter中直接显示Matplotlib的图形方法
- Java对文本文件MD5加密并ftp传送到远程主机目录的实现方法
