在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之入门(四)运算
May 27 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
Nov 06 Python
简介二分查找算法与相关的Python实现示例
Aug 26 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
python tornado使用流生成图片的例子
Nov 18 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
Python操作redis和mongoDB的方法
Dec 19 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
Numpy一维线性插值函数的用法
Apr 22 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 Python
python和anaconda的区别
May 06 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 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的十大要点(上)
2009/02/04 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
python中reload(module)的用法示例详解
2017/09/15 Python
pycharm设置注释颜色的方法
2018/05/23 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
数学专业推荐信范文
2013/11/21 职场文书
篝火晚会主持词
2014/03/25 职场文书
协议书怎么写
2014/04/21 职场文书
社区义诊活动总结
2014/04/30 职场文书
高中班级口号
2014/06/09 职场文书
学习礼仪心得体会
2014/09/01 职场文书
借条格式范本
2015/05/25 职场文书
律师催款函范文
2015/06/24 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python
Mysql中mvcc各场景理解应用
2022/08/05 MySQL