在keras下实现多个模型的融合方式


Posted in Python onMay 23, 2020

在网上搜过发现关于keras下的模型融合框架其实很简单,奈何网上说了一大堆,这个东西官方文档上就有,自己写了个demo:

# Function:基于keras框架下实现,多个独立任务分类
# Writer: PQF
# Time: 2019/9/29

import numpy as np
from keras.layers import Input, Dense
from keras.models import Model
import tensorflow as tf

# 生成训练集
dataset_size = 128*3
rdm = np.random.RandomState(1)
X = rdm.rand(dataset_size,2)
Y1 = [[int(x1+x2<1)] for (x1,x2) in X]
Y2 = [[int(x1+x2*x2<0.5)] for (x1,x2) in X]

X_train = X[:-2]
Y_train1 = Y1[:-2]
Y_train2 = Y2[:-2]

X_test = X[-2:dataset_size]
Y_test1 = Y1[-2:dataset_size]
Y_test2 = Y2[-2:dataset_size]

#网络一
input = Input(shape=(2,))
x = Dense(units=16,activation='relu')(input)
output = Dense(units=1,activation='sigmoid',name='output1')(x)

#网络二
input2 = Input(shape=(2,))
x2 = Dense(units=16,activation='relu')(input2)
output2 = Dense(units=1,activation='sigmoid',name='output2')(x2)

#模型合并
model = Model(inputs=[input,input2],outputs=[output,output2])
model.summary()

model.compile(optimizer='rmsprop',loss='binary_crossentropy',loss_weights=[1.0,1.0])
model.fit([X_train,X_train],[Y_train1,Y_train2],batch_size=48,epochs=200)

print('x_test is :\n')
print(X_test)
print('y_test1 is :\n')
print(Y_test1)
print('y_test2 is :\n')
print(Y_test2)

predict = model.predict([X_test,X_test])
print('prediction is : \n')
print(predict[0])
print(predict[1])

补充知识:keras的融合层使用理解

最近开始研究U-net网络,其中接触到了融合层的概念,做个笔记。

在keras下实现多个模型的融合方式

上图为U-net网络,其中上采样层(绿色箭头)需要与下采样层池化层(红色箭头)层进行融合,要求每层的图片大小一致,维度依照融合的方式可以不同,融合之后输出的图片相较于没有融合层的网络,边缘处要清晰很多!

这时候就要用到keras的融合层概念(Keras中文文档https://keras.io/zh/)

文档中分别讲述了加减乘除的四中融合方式,这种方式要求两层之间shape必须一致。

重点讲述一下Concatenate(拼接)方式

拼接方式默认依照最后一维也就是通道来进行拼接

在keras下实现多个模型的融合方式

如同上图(128*128*64)与(128*128*128)进行Concatenate之后的shape为128*128*192

ps:

中文文档为老版本,最新版本的keras.layers.merge方法进行了整合

在keras下实现多个模型的融合方式

上图为新版本整合之后的方法,具体使用方法一看就懂,不再赘述。

以上这篇在keras下实现多个模型的融合方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 正则式 概述及常用字符
May 07 Python
深入浅析python定时杀进程
Jun 06 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
Flask框架配置与调试操作示例
Jul 23 Python
python 定时器,轮询定时器的实例
Feb 20 Python
python常用库之NumPy和sklearn入门
Jul 11 Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
Python实现微信好友的数据分析
Dec 16 Python
python数据爬下来保存的位置
Feb 17 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 Python
Keras使用ImageNet上预训练的模型方式
May 23 #Python
使用Keras预训练模型ResNet50进行图像分类方式
May 23 #Python
基于Python中random.sample()的替代方案
May 23 #Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 #Python
keras中模型训练class_weight,sample_weight区别说明
May 23 #Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 #Python
Keras实现将两个模型连接到一起
May 23 #Python
You might like
PHP5 面向对象(学习记录)
2009/12/02 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
python创建线程示例
2014/05/06 Python
python获取list下标及其值的简单方法
2016/09/12 Python
Python对切片命名的实现方法
2018/10/16 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
Python读写锁实现实现代码解析
2020/11/28 Python
python 实现逻辑回归
2020/12/30 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
百联网上商城:i百联
2017/01/28 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
介绍一下write命令
2014/08/10 面试题
小学教师岗位职责
2013/11/25 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
中央空调节能方案
2014/06/15 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
2015党建工作简报
2015/07/21 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
Python编写冷笑话生成器
2022/04/20 Python