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读取json文件并将数据插入到mongodb的方法
Mar 23 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
Python数据拟合与广义线性回归算法学习
Dec 22 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
如何利用Boost.Python实现Python C/C++混合编程详解
Nov 08 Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
Python类和实例的属性机制原理详解
Mar 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
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
php实现telnet功能示例
2014/04/08 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
初识Node.js
2015/03/20 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
《母亲的恩情》教学反思
2014/02/13 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
安全承诺书格式范本
2015/04/28 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫
MySQL 语句执行顺序举例解析
2022/06/05 MySQL