在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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
Python中Collection的使用小技巧
Aug 18 Python
python自然语言编码转换模块codecs介绍
Apr 08 Python
python统计日志ip访问数的方法
Jul 06 Python
python安装与使用redis的方法
Apr 19 Python
谈谈Python中的while循环语句
Mar 10 Python
Python中关于浮点数的冷知识
Sep 22 Python
Python获取时间戳代码实例
Sep 24 Python
wxPython之wx.DC绘制形状
Nov 19 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
Python监听剪切板实现方法代码实例
Nov 11 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 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 INI配置文件的解析实现分析
2011/01/04 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
html读出文本文件内容
2007/01/22 Javascript
javascript[js]获取url参数的代码
2007/10/17 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
jquery.validate使用详解
2016/06/02 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
python中os.remove()用法及注意事项
2021/01/31 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
农民致富事迹材料
2014/01/23 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
python办公自动化之excel的操作
2021/05/23 Python