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 15 Python
python 从csv读数据到mysql的实例
Jun 21 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
Python如何使用BeautifulSoup爬取网页信息
Nov 26 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
Dec 13 Python
Python tkinter常用操作代码实例
Jan 03 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Python自带的IDE在哪里
Jul 01 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 Python
Python中with上下文管理协议的作用及用法
Mar 18 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
改进的IP计数器
2006/10/09 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
python实现RSA加密(解密)算法
2016/02/17 Python
详解Python中的正则表达式
2018/07/08 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
详解python配置虚拟环境
2019/04/08 Python
python与字符编码问题
2019/05/24 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
2016年教师节感言
2015/12/09 职场文书
详解Redis主从复制实践
2021/05/19 Redis
php双向队列实例讲解
2021/11/17 PHP
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA