在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之编写类之二方法
Oct 11 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
centos6.7安装python2.7.11的具体方法
Jan 16 Python
python3操作微信itchat实现发送图片
Feb 24 Python
详解Python函数式编程—高阶函数
Mar 29 Python
python基于递归解决背包问题详解
Jul 03 Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
在python中修改.properties文件的操作
Apr 08 Python
Python自动发送和收取邮件的方法
Aug 12 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个人网站架设连环讲(一)
2006/10/09 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
php检测文件编码的方法示例
2014/04/25 PHP
php关联数组快速排序的方法
2015/04/17 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
python实现点对点聊天程序
2018/07/28 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
团员个人的自我评价
2013/12/02 职场文书
大学校庆策划书
2014/01/31 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
求职自荐信怎么写
2014/03/06 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
2014全年工作总结
2014/11/27 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
Python图片处理之图片裁剪教程
2021/05/27 Python