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调用cmd复制文件代码分享
Dec 27 Python
Python设计模式之备忘录模式原理与用法详解
Jan 15 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
python str字符串转uuid实例
Mar 03 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
python如何调用百度识图api
Sep 29 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 Python
PyTorch 如何自动计算梯度
May 23 Python
Python实现学生管理系统(面向对象版)
Jun 24 Python
Python实现聚类K-means算法详解
Jul 15 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学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
js 中 document.createEvent的用法
2010/08/29 Javascript
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
python各种语言间时间的转化实现代码
2016/03/23 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
python实现二分查找算法
2020/09/18 Python
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
夜大毕业生自我鉴定
2013/10/31 职场文书
工商企业管理实习自我鉴定
2013/12/04 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
项目合作意向书模板
2014/07/29 职场文书
关于美容院的活动方案
2014/08/14 职场文书
召开会议通知范文
2015/04/15 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
如何撰写促销方案?
2019/07/05 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android