在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处理中文编码和判断编码示例
Feb 26 Python
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
Jul 04 Python
在Python中使用Neo4j数据库的教程
Apr 16 Python
处理Python中的URLError异常的方法
Apr 30 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
Jul 30 Python
python实现手机通讯录搜索功能
Feb 22 Python
Python中垃圾回收和del语句详解
Nov 15 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 Python
Python基于numpy模块实现回归预测
May 14 Python
Python使用openpyxl复制整张sheet
Mar 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
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
vue中添加mp3音频文件的方法
2018/03/02 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
python实现基本进制转换的方法
2015/07/11 Python
Python日志模块logging基本用法分析
2018/08/23 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
Python jieba库用法及实例解析
2019/11/04 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
python爬虫 requests-html的使用
2020/11/30 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
CSS3 边框效果
2019/11/04 HTML / CSS
工艺工程师工作职责
2013/11/23 职场文书
城管大队整治方案
2014/05/06 职场文书
绘画专业自荐信
2014/07/04 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
Redis keys命令的具体使用
2022/06/05 Redis