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 translator使用实例
Sep 06 Python
简单解决Python文件中文编码问题
Nov 22 Python
总结Python编程中函数的使用要点
Mar 20 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python continue继续循环用法总结
Jun 10 Python
pandas 将索引值相加的方法
Nov 15 Python
python如何读取bin文件并下发串口
Jul 05 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
python根据文本生成词云图代码实例
Nov 15 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
Python 日期与时间转换的方法
Aug 01 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
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
JavaScript错误处理
2015/02/03 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
js实现简单的秒表
2020/01/16 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
python基于multiprocessing的多进程创建方法
2015/06/04 Python
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
内部类的定义、种类以及优点
2013/10/16 面试题
农村葬礼主持词
2014/03/31 职场文书
股票投资建议书
2014/05/19 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
云冈石窟导游词
2015/02/04 职场文书
夫妻吵架保证书
2015/05/08 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript