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访问sqlserver示例
Feb 10 Python
Python中的自定义函数学习笔记
Sep 23 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
对python列表里的字典元素去重方法详解
Jan 21 Python
python输出决策树图形的例子
Aug 09 Python
python实现简单的购物程序代码实例
Mar 03 Python
python输出第n个默尼森数的实现示例
Mar 08 Python
Python搭建Keras CNN模型破解网站验证码的实现
Apr 07 Python
python神经网络编程之手写数字识别
May 08 Python
python如何利用traceback获取详细的异常信息
Jun 05 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和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
XENON基于JSON变种
2010/07/27 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python 接收处理外带的参数方法
2018/12/03 Python
Python restful框架接口开发实现
2020/04/13 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
python开根号实例讲解
2020/08/30 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
Python LMDB库的使用示例
2021/02/14 Python
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
擅自离岗检讨书
2014/02/11 职场文书
简单租房协议书
2014/04/09 职场文书
合作协议书格式
2014/08/19 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers