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编程判断一个正整数是否为素数的方法
Apr 14 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
Python之re操作方法(详解)
Jun 14 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
python采集微信公众号文章
Dec 20 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
python中while和for的区别总结
Jun 28 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Flask中sqlalchemy模块的实例用法
Aug 02 Python
Pandas的数据过滤实现
Jan 15 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+javascript实现二级级联菜单的制作
2008/05/06 PHP
PHP学习 变量使用总结
2011/03/24 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
javascript中的有名函数和无名函数
2007/10/17 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[03:54]DOTA2英雄梦之声_第06期_昆卡
2014/06/23 DOTA
python self,cls,decorator的理解
2009/07/13 Python
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
利用python实现数据分析
2017/01/11 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
python文件及目录操作代码汇总
2020/07/08 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
个人贷款承诺书
2014/03/28 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android