在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微信公众号开发平台
Jan 25 Python
Python遍历pandas数据方法总结
Feb 09 Python
解决pycharm界面不能显示中文的问题
May 23 Python
基于Python List的赋值方法
Jun 23 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
Opencv+Python 色彩通道拆分及合并的示例
Dec 08 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
python sitk.show()与imageJ结合使用常见的问题
Apr 20 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
Python获取字典中某个key的value
Apr 13 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输出Excel文件类
2010/02/08 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
微信JS接口大全
2016/08/25 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
vue.js的提示组件
2017/03/02 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
js实现验证码功能
2020/07/24 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
语文教学随笔感言
2014/02/18 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python