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实现全局变量的两个解决方法
Jul 03 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
Apr 09 Python
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
理解python正则表达式
Jan 15 Python
对numpy中数组转置的求解以及向量内积计算方法
Oct 31 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
Python中内建模块collections如何使用
May 27 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
python解决12306登录验证码的实现
Apr 18 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加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
Python实现基本线性数据结构
2016/08/22 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python中的常量和变量代码详解
2018/07/25 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
Python 多维List创建的问题小结
2019/01/18 Python
详解Python是如何实现issubclass的
2019/07/24 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
大学生毕业自我评价范文分享
2013/11/11 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
记者节感言
2015/08/03 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js