在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 相关文章推荐
详解字典树Trie结构及其Python代码实现
Jun 03 Python
python 性能提升的几种方法
Jul 15 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
Django REST framework 分页的实现代码
Jun 19 Python
Python代码太长换行的实现
Jul 05 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
python--shutil移动文件到另一个路径的操作
Jul 13 Python
关于python爬虫应用urllib库作用分析
Sep 04 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
pdo中使用参数化查询sql
2011/08/11 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
Python中使用ElementTree解析XML示例
2015/06/02 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
优秀士兵个人事迹材料
2014/01/19 职场文书
城管大队整治方案
2014/05/06 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
秦兵马俑导游词
2015/02/02 职场文书
2015年防汛工作总结
2015/05/15 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python