在keras里实现自定义上采样层


Posted in Python onJune 28, 2020

Keras里的UpSampling2D层不是中的双线性内插,而是简单的重复图像。这点和pytorch不一样,pytorch默认使用的是双线性内插。

同样:这里仍然使用的是keras而不是tf.keras.

keras里UpSampling2D的部分定义说明如下:

class UpSampling2D(Layer):
  """Upsampling layer for 2D inputs.
  Repeats the rows and columns of the data
  by size[0] and size[1] respectively.

可以看出,这里的上采样确实只是简单的图像重复。

要想使用双线性或者最近邻或者双三次插值上采样,则需要在tf的tf.image.resize_images函数基础上进行包装,代码如下:

####定义:
def my_upsampling(x,img_w,img_h,method=0):
  """0:双线性差值。1:最近邻居法。2:双三次插值法。3:面积插值法"""
  return tf.image.resize_images(x,(img_w,img_h),0)
 
###调用:
Lambda(my_upsampling,arguments={'img_w':self.img_w,'img_h':self.img_h})(output_6)
 
###load_model时注意加上tf:
model = keras.models.load_model('my_model.h5', custom_objects={'tf': tf})

补充知识:keras中使用内置模型语义分割上采样维度不匹配

1.卷积时要使用padding=same因此要修改原来的padding=valid

x = conv2d_bn(img_input, 32, 3, strides=2, padding='same')

2.池化时卷积核大小修改为2而不是原来的3

branch_pool = layers.MaxPooling2D(2, strides=2, padding='same')(x)

以上这篇在keras里实现自定义上采样层就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中装饰器的一个妙用
Feb 08 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
Python正则表达式使用范例分享
Dec 04 Python
python数据结构之链表详解
Sep 12 Python
用matplotlib画等高线图详解
Dec 14 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
Python发送邮件封装实现过程详解
May 09 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
大数据分析用java还是Python
Jul 06 Python
Python使用scapy模块发包收包
May 07 Python
Python如何对XML 解析
Jun 28 #Python
keras 自定义loss层+接受输入实例
Jun 28 #Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 #Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 #Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 #Python
sklearn的predict_proba使用说明
Jun 28 #Python
基于python实现ROC曲线绘制广场解析
Jun 28 #Python
You might like
详解PHP显示MySQL数据的三种方法
2008/06/05 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
PyCharm配置mongo插件的方法
2018/11/30 Python
python实现可逆简单的加密算法
2019/03/22 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
什么是Assembly(程序集)
2014/09/14 面试题
中级会计职业生涯规划范文
2014/01/16 职场文书
公司前台辞职报告
2014/01/19 职场文书
理发店策划方案
2014/06/05 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers