keras 使用Lambda 快速新建层 添加多个参数操作


Posted in Python onJune 10, 2020

keras许多简单操作,都需要新建一个层,使用Lambda可以很好完成需求。

# 额外参数
def normal_reshape(x, shape):
 return K.reshape(x,shape)
 
output = Lambda(normal_reshape, arguments={'shape':(-1, image_seq, 1000)})(output)
output = Lambda(lambda inp: K.mean(inp, axis=1), output_shape=(1000,))(output)

更多参考

补充知识:keras 实现包括batch size所在维度的reshape,使用backend新建一层 针对多输入使用不同batch size折衷解决办法

新建层,可以在此层内使用backend完成想要的功能,如包含batch size维度在内的reshpe:

def backend_reshape(x): return backend.reshape(x, (-1, 5, 256))

使用lambda方法调用层:

vision_model.add(Lambda(backend_reshape, output_shape=(5, 256)))

注意指定输出维度

在多输入问题中,有时两个输入具有不同的batch size,但在keras无法直接实现。我所遇到的问题是,我有两个输入分别是图像输入和问题输入,对于图像输入每个样本是一个图像序列。这就要求我们在把图像序列输入到CNN中时是一张一张图像。

我的解决办法是在输入是把图像序列作为一个样本,等输入进去后,通过上述的reshape方法将图像序列重新拆分成一张张图像输入到CNN,然后在后期处理时重新reshape成一个序列样本。

代码:

image_seq = 4
def preprocess_reshape(x):
 return K.reshape(x, (-1, 224, 224,3))
 
def backend_reshape(x):
 return K.reshape(x, (-1, image_seq, 256))
image_input = Input(shape=(image_seq, 224, 224, 3) , name='input_img')
image_re = Lambda(preprocess_reshape, output_shape=(224,224,3))(image_input)
im_pre = Lambda(preprocess_input, name='preprocessing')(image_re)

vision_model.add(Lambda(backend_reshape, output_shape=(image_seq, 256))) vision_model.add(LSTM(256, kernel_regularizer=l2, recurrent_regularizer=l2))

以上这篇keras 使用Lambda 快速新建层 添加多个参数操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python sqlobject(mysql)中文乱码解决方法
Nov 14 Python
Python字符串详细介绍
May 09 Python
Django卸载之后重新安装的方法
Mar 15 Python
python多线程下信号处理程序示例
May 31 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
python psutil模块使用方法解析
Aug 01 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
在python3中使用shuffle函数要注意的地方
Feb 28 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
python 爬取吉首大学网站成绩单
Jun 02 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 #Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
Jun 10 #Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 #Python
浅谈Python中的字符串
Jun 10 #Python
Keras 使用 Lambda层详解
Jun 10 #Python
keras打印loss对权重的导数方式
Jun 10 #Python
Python xlrd模块导入过程及常用操作
Jun 10 #Python
You might like
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
vue.js的安装方法
2017/05/12 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
Python list操作用法总结
2015/11/10 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
Python List cmp()知识点总结
2019/02/18 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
高中美术教学反思
2014/01/19 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
车贷收入证明范本
2014/09/14 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
综合测评个人总结
2015/03/03 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL