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解析xml文件操作实例
Oct 05 Python
Python实现线程池代码分享
Jun 21 Python
django自带的server 让外网主机访问方法
May 14 Python
Python延时操作实现方法示例
Aug 14 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
学习Django知识点分享
Sep 11 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
Python的历史与优缺点整理
May 26 Python
matplotlib.pyplot.plot()参数使用详解
Jul 28 Python
python开发入门——set的使用
Sep 03 Python
基于python实现复制文件并重命名
Sep 16 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 编程请选择正确的文本编辑软件
2006/12/21 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
PHP eval函数使用介绍
2013/12/08 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
PHP7 windows支持
2021/03/09 PHP
JavaScript的Cookies
2008/01/16 Javascript
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
以一段代码为实例快速入门Python2.7
2015/03/31 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
python实现五子棋游戏
2019/06/18 Python
简单了解python中的与或非运算
2019/09/18 Python
python多进程并行代码实例
2019/09/30 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
违纪检讨书2000字
2014/02/08 职场文书
工程管理英文求职信
2014/03/18 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
Android studio 简单计算器的编写
2022/05/20 Java/Android