pytorch进行上采样的种类实例

 更新时间:2020年02月18日 14:13:12   作者:yangdashi888  
今天小编就为大家分享一篇pytorch进行上采样的种类实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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进行上采样的种类实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • pycharm中连接mysql数据库的步骤详解

    pycharm中连接mysql数据库的步骤详解

    在进行Python研发的时候,pycharm是一个很好的IDE,下面这篇文章主要给大家介绍了pycharm中连接mysql数据库的步骤,文中通过图文介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • 基于python log取对数详解

    基于python log取对数详解

    今天小编就为大家分享一篇基于python log取对数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python使用PIL模块生成随机验证码

    Python使用PIL模块生成随机验证码

    这篇文章主要为大家详细介绍了Python使用PIL模块生成随机验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 代码详解django中数据库设置

    代码详解django中数据库设置

    在本篇文章里小编给大家分享了关于django中数据库设置的相关实例内容,有兴趣的朋友们跟着学习下。
    2019-01-01
  • 使用Python对网易云歌单数据分析及可视化

    使用Python对网易云歌单数据分析及可视化

    这篇文章主要介绍了使用Python对网易云歌单数据分析及可视化,本项目以数据采集、处理、分析及数据可视化为项目流程,需要的朋友可以参考下
    2023-03-03
  • Python如何批量处理经纬度数据并生成位置信息

    Python如何批量处理经纬度数据并生成位置信息

    这篇文章主要介绍了Python如何批量处理经纬度数据并生成位置信息问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python 提速器numba

    Python 提速器numba

    这篇文章主要介绍了Python 提速器numba,相信大部分人都感叹过python 真的太好用了,但是它真的好慢啊,然而今天我们就来用numba解决Python 慢的这个问题,需要的朋友可以参考一下
    2022-01-01
  • Python将py文件编译为exe文件

    Python将py文件编译为exe文件

    大家好,本篇文章主要讲的是Python将py文件编译为exe文件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • opencv+python实现均值滤波

    opencv+python实现均值滤波

    这篇文章主要为大家详细介绍了opencv+python实现均值滤波,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • python中路径字符串斜杠替换方式

    python中路径字符串斜杠替换方式

    这篇文章主要介绍了python中路径字符串斜杠替换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论