在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实现的udp协议Server和Client代码实例
Jun 04 Python
使用Python开发windows GUI程序入门实例
Oct 23 Python
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 Python
Python实现连接postgresql数据库的方法分析
Dec 27 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
ipad上运行python的方法步骤
Oct 12 Python
django orm模块中的 is_delete用法
May 20 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
PyQt5爬取12306车票信息程序的实现
May 14 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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应用实例 登录验证
2009/03/16 PHP
php读取html并截取字符串的简单代码
2009/11/30 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
收集的几个Python小技巧分享
2014/11/22 Python
python实现中文输出的两种方法
2015/05/09 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
浅谈Python中的字符串
2020/06/10 Python
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
北京离婚协议书范文2014
2014/09/29 职场文书
班主任经验交流材料
2014/12/16 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
九年级数学教学反思
2016/02/17 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL