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垃圾回收机制
Feb 12 Python
Python环境变量设置方法
Aug 28 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
在Python 字典中一键对应多个值的实例
Feb 03 Python
Python中一般处理中文的几种方法
Mar 06 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
Anaconda配置各版本Pytorch的实现
Aug 07 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面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python生成验证码实例
2014/08/21 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
vscode调试django项目的方法
2020/08/06 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
Java基础面试题
2012/11/02 面试题
汽车专业学生自我评价
2014/01/19 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
活着观后感
2015/06/03 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
Python上下文管理器Content Manager
2021/06/26 Python
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers
Docker部署Mysql8的实现步骤
2022/07/07 Servers