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用来获得图片exif信息的库实例分析
Mar 16 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
python利用正则表达式搜索单词示例代码
Sep 24 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
Django models.py应用实现过程详解
Jul 29 Python
详解Python3 pandas.merge用法
Sep 05 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
python如何利用paramiko执行服务器命令
Nov 07 Python
python自动打开浏览器下载zip并提取内容写入excel
Jan 04 Python
如何用python反转图片,视频
Apr 24 Python
python中 Flask Web 表单的使用方法
May 20 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内存溢出问题的解决方法
2013/06/25 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
Javascript浅谈之this
2013/12/17 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
JavaScript闭包详解
2015/02/02 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Apache如何部署django项目
2017/05/21 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
python3.4爬虫demo
2019/01/22 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
2016年第32个教师节致辞
2015/11/26 职场文书
初中政治教学反思
2016/02/23 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
vue实现锚点定位功能
2021/06/29 Vue.js
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL