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 相关文章推荐
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
Python绘制KS曲线的实现方法
Aug 13 Python
浅谈numpy生成数组的零值问题
Nov 12 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
从pandas一个单元格的字符串中提取字符串方式
Dec 17 Python
Tensorflow 多线程与多进程数据加载实例
Feb 05 Python
Python pandas如何向excel添加数据
May 22 Python
Python中glob库实现文件名的匹配
Jun 18 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 Python
如何基于python实现单目三维重建详解
Jun 25 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
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
php查看当前Session的ID实例
2015/03/16 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
python @property的用法及含义全面解析
2018/02/01 Python
Linux下多个Python版本安装教程
2018/08/15 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
Python龙贝格法求积分实例
2020/02/29 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
中职生自荐信
2013/10/13 职场文书
即兴演讲稿
2014/01/04 职场文书
学年末自我鉴定
2014/01/21 职场文书
聘任书模板
2014/03/29 职场文书
公务员个人年终总结
2015/02/12 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
高中同学会致辞
2015/08/01 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
Nginx 常用配置
2022/05/15 Servers