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中没有"a++"这种写法
Nov 27 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
python多线程扫描端口(线程池)
Sep 04 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
pandas中ix的使用详细讲解
Mar 09 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
用 Python 制作地球仪的方法
Apr 24 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
获取python运行输出的数据并解析存为dataFrame实例
Jul 07 Python
python使用requests库爬取拉勾网招聘信息的实现
Nov 20 Python
Python使用UDP实现720p视频传输的操作
Apr 24 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学习教程之第2天
2008/06/15 PHP
Yii中实现处理前后台登录的新方法
2015/12/28 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
Array.prototype.slice 使用扩展
2010/06/09 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
JavaScript中的对象序列化介绍
2014/12/30 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
JavaScript DOM基础
2015/04/13 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python中的模块和包概念介绍
2015/04/13 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
美术教师岗位职责
2014/03/18 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
授权委托书公证
2014/09/14 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
cf战队宣传语
2015/07/13 职场文书
庭外和解协议书
2016/03/23 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书