在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的SQLAlchemy框架使用入门
Apr 29 Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
Python 复平面绘图实例
Nov 21 Python
python实现智能语音天气预报
Dec 02 Python
python实现从wind导入数据
Dec 03 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 Python
python实现画图工具
Aug 27 Python
python识别验证码的思路及解决方案
Sep 13 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
php查看session内容的函数
2008/08/27 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
python中的函数用法入门教程
2014/09/02 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python 数据的清理行为实例详解
2017/07/12 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
三严三实对照检查材料
2014/08/25 职场文书
车间质检员岗位职责
2015/04/08 职场文书
律师函格式范本
2015/05/27 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android