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+Django在windows下的开发环境配置图解
Nov 11 Python
Python中列表、字典、元组、集合数据结构整理
Nov 20 Python
python分析apache访问日志脚本分享
Feb 26 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
Mar 31 Python
Python docx库用法示例分析
Feb 16 Python
详解Python字典的操作
Mar 04 Python
详解Python locals()的陷阱
Mar 26 Python
python实现ip代理池功能示例
Jul 05 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
python第三方库学习笔记
Feb 07 Python
opencv+python实现均值滤波
Feb 19 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
php中通过curl smtp发送邮件
2012/06/05 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
PHP学习记录之数组函数
2018/06/01 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
linux查找当前python解释器的位置方法
2019/02/20 Python
python脚本后台执行方式
2019/12/21 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Python csv文件记录流程代码解析
2020/07/16 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
struct和class的区别
2015/11/20 面试题
考博自荐信
2013/10/25 职场文书
试用期员工考核制度
2014/01/22 职场文书
关于美容院的活动方案
2014/08/14 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
团日活动总结格式
2015/05/11 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
详解Python中*args和**kwargs的使用
2022/04/07 Python