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操作日期和时间的方法
Mar 11 Python
Python的Django中django-userena组件的简单使用教程
May 30 Python
python友情链接检查方法
Jul 08 Python
python调用fortran模块
Apr 08 Python
利用aardio给python编写图形界面
Aug 21 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
Python变量类型知识点总结
Feb 18 Python
基于python的socket实现单机五子棋到双人对战
Mar 24 Python
python实现猜数游戏
Mar 27 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
DRF使用simple JWT身份验证的实现
Jan 14 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跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
Python 逐行分割大txt文件的方法
2017/10/10 Python
点球小游戏python脚本
2018/05/22 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
Python实现word2Vec model过程解析
2019/12/16 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
如何利用cmp命令比较文件
2013/09/23 面试题
小学生学习感言
2014/03/10 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
python glom模块的使用简介
2021/04/13 Python
Mysql忘记密码解决方法
2022/02/12 MySQL
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript