pytorch进行上采样的种类实例


Posted in Python onFebruary 18, 2020

1、其中再语义分割比较常用的上采样:

其实现方法为:

def upconv2x2(in_channels, out_channels, mode='transpose'):
 if mode == 'transpose':
  # 这个上采用需要设置其输入通道,输出通道.其中kernel_size、stride
  # 大小要跟对应下采样设置的值一样大小。这样才可恢复到相同的wh。这里时反卷积操作。
  return nn.ConvTranspose2d(
   in_channels,
   out_channels,
   kernel_size=2,
   stride=2)
 else:
  # out_channels is always going to be the same
  # as in_channels
  # 这里不会改变通道数,其中scale_factor是上采用的放大因子,其是相对于当前的
  # 输入大小的倍数
  return nn.Sequential(
   nn.Upsample(mode='bilinear', scale_factor=2, align_corners=True))
  # 这里的代码是在这里设置多一个卷积,这样子就起到了可以修改其输出通道的功能了。
  # 相当于功能跟ConvTranspose2d()差不多,只是上采样的方法不同
  conv1x1((in_channels, out_channels))
 
 
def conv1x1(in_channels, out_channels, groups=1):
 return nn.Sequential(nn.Conv2d(
  in_channels,
  out_channels,
  kernel_size=1,
  groups=groups,
  stride=1),
 nn.BatchNorm2d(out_channels))

另一种上采样的方法是,参考代码:segnet_pytorch:

# Stage 5
  x51 = F.relu(self.bn51(self.conv51(x4p)))
  x52 = F.relu(self.bn52(self.conv52(x51)))
  x53 = F.relu(self.bn53(self.conv53(x52)))
  #这个id5记录的是池化操作时最大值的index,其要设置参数return_indices为True
  x5p, id5 = F.max_pool2d(x53,kernel_size=2, stride=2,return_indices=True)
 
 
  # Stage 5d
  #这个是进行最大值上采样的函数,其是根据id5来把值放到什么位置,其它位置没有值的地方
  补0
  x5d = F.max_unpool2d(x5p, id5, kernel_size=2, stride=2)
  x53d = F.relu(self.bn53d(self.conv53d(x5d)))
  x52d = F.relu(self.bn52d(self.conv52d(x53d)))
  x51d = F.relu(self.bn51d(self.conv51d(x52d)))

测试例子:

#测试上采样
m=nn.MaxPool2d((3,3),stride=(1,1),return_indices=True)
upm=nn.MaxUnpool2d((3,3),stride=(1,1))
data4=torch.randn(1,1,3,3)
output5,indices=m(data4)
output6=upm(output5,indices)
 
print('\ndata4:',data4,
  '\nmaxPool2d',output5,
  '\nindices:',indices,
  '\noutput6:',output6)

其输出为:

data4: tensor([[[[ 2.3151, -1.0391, 0.1074],
   [ 1.9360, 0.2524, 2.3735],
   [-0.1151, 0.4684, -1.8800]]]]) 
maxPool2d tensor([[[[2.3735]]]]) 
indices: tensor([[[[5]]]]) 
output6: tensor([[[[0.0000, 0.0000, 0.0000],
   [0.0000, 0.0000, 2.3735],
   [0.0000, 0.0000, 0.0000]]]])

以上这篇pytorch进行上采样的种类实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python生成随机密码
Mar 10 Python
基于wxpython实现的windows GUI程序实例
May 30 Python
Python中的错误和异常处理简单操作示例【try-except用法】
Jul 25 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
python conda操作方法
Sep 11 Python
浅析python内置模块collections
Nov 15 Python
python图形用户接口实例详解
Dec 16 Python
python 消除 futureWarning问题的解决
Dec 25 Python
PyQt5+python3+pycharm开发环境配置教程
Mar 24 Python
Python内置函数property()如何使用
Sep 01 Python
Python数据分析之pandas函数详解
Apr 21 Python
new_zeros() pytorch版本的转换方式
Feb 18 #Python
对pytorch的函数中的group参数的作用介绍
Feb 18 #Python
基于python3实现倒叙字符串
Feb 18 #Python
Python日期格式和字符串格式相互转换的方法
Feb 18 #Python
Python数组并集交集补集代码实例
Feb 18 #Python
通过python检测字符串的字母
Feb 18 #Python
Python安装whl文件过程图解
Feb 18 #Python
You might like
怎样辨别一杯好咖啡
2021/03/03 新手入门
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
PHP 输出简单动态WAP页面
2009/06/09 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
javascript preload&lazy load
2010/05/13 Javascript
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Python中获取网页状态码的两个方法
2014/11/03 Python
python中黄金分割法实现方法
2015/05/06 Python
python计算对角线有理函数插值的方法
2015/05/07 Python
详解Swift中属性的声明与作用
2016/06/30 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
Django 路由系统URLconf的使用
2018/10/11 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
C++程序员求职信
2014/05/07 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
2015年林业工作总结
2015/05/14 职场文书
幽灵公主观后感
2015/06/09 职场文书
MySQL 数据库范式化设计理论
2022/04/22 MySQL
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android