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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
用python删除java文件头上版权信息的方法
Jul 31 Python
Python连接数据库学习之DB-API详解
Feb 07 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
Sep 25 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
Python实现微信小程序支付功能
Jul 25 Python
Python调用C语言的实现
Jul 26 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
Python使用多进程运行含有任意个参数的函数
May 02 Python
Python中的datetime包与time包包和模块详情
Feb 28 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 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
用在PHP里的JS打印函数
2006/10/09 PHP
PHP脚本的10个技巧(6)
2006/10/09 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
php while循环控制的简单实例
2016/05/30 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue v-model动态生成详解
2018/06/30 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
培训班开班仪式主持词
2014/03/28 职场文书
给公司的建议书范文
2014/05/13 职场文书
小学数学教师研修感悟
2015/11/18 职场文书