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 相关文章推荐
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
python TKinter获取文本框内容的方法
Oct 11 Python
对python cv2批量灰度图片并保存的实例讲解
Nov 09 Python
Python中三元表达式的几种写法介绍
Mar 04 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
Python配置虚拟环境图文步骤
May 20 Python
python实现二级登陆菜单及安装过程
Jun 21 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
Pygame Rect区域位置的使用(图文)
Nov 17 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程序
2006/10/09 PHP
PHP基础学习小结
2011/04/17 PHP
PHP引用(&)各种使用方法实例详解
2014/03/20 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python sorted函数详解(高级篇)
2018/09/18 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
巴黎一票通:The Paris Pass
2018/02/10 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
外贸采购员求职的自我评价
2013/11/26 职场文书
煤矿班组长的职责
2013/12/25 职场文书
三年级小学生评语
2014/04/22 职场文书
团结演讲稿范文
2014/05/23 职场文书
个人年终总结范文
2015/03/09 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
Python代码实现双链表
2022/05/25 Python