在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编码时应该注意的几个情况
Mar 04 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
Python时间戳使用和相互转换详解
Dec 11 Python
python实现简单登陆系统
Oct 18 Python
详解python--模拟轮盘抽奖游戏
Apr 12 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
python3射线法判断点是否在多边形内
Jun 28 Python
python的常见矩阵运算(小结)
Aug 07 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
关于的python五子棋的算法
May 02 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下使用以下代码连接并测试
2008/04/09 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
使用python加密自己的密码
2015/08/04 Python
详解Python验证码识别
2016/01/25 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
描述RIP和OSPF区别以及特点
2015/01/17 面试题
遗产继承公证书
2014/04/09 职场文书
卖车协议书范例
2014/09/16 职场文书
质量主管工作职责
2014/09/26 职场文书
安全员岗位职责
2015/02/10 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
外出学习心得体会范文
2016/01/18 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
Linux安装apache服务器的配置过程
2021/11/27 Servers