最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pytorch進(jìn)行上采樣的種類實(shí)例

 更新時(shí)間:2020年02月18日 14:13:12   作者:yangdashi888  
今天小編就為大家分享一篇pytorch進(jìn)行上采樣的種類實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、其中再語義分割比較常用的上采樣:

其實(shí)現(xiàn)方法為:

def upconv2x2(in_channels, out_channels, mode='transpose'):
 if mode == 'transpose':
  # 這個(gè)上采用需要設(shè)置其輸入通道,輸出通道.其中kernel_size、stride
  # 大小要跟對應(yīng)下采樣設(shè)置的值一樣大小。這樣才可恢復(fù)到相同的wh。這里時(shí)反卷積操作。
  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
  # 這里不會改變通道數(shù),其中scale_factor是上采用的放大因子,其是相對于當(dāng)前的
  # 輸入大小的倍數(shù)
  return nn.Sequential(
   nn.Upsample(mode='bilinear', scale_factor=2, align_corners=True))
  # 這里的代碼是在這里設(shè)置多一個(gè)卷積,這樣子就起到了可以修改其輸出通道的功能了。
  # 相當(dāng)于功能跟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)))
  #這個(gè)id5記錄的是池化操作時(shí)最大值的index,其要設(shè)置參數(shù)return_indices為True
  x5p, id5 = F.max_pool2d(x53,kernel_size=2, stride=2,return_indices=True)
 
 
  # Stage 5d
  #這個(gè)是進(jìn)行最大值上采樣的函數(shù),其是根據(jù)id5來把值放到什么位置,其它位置沒有值的地方
  補(bǔ)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)))

測試?yán)樱?/strong>

#測試上采樣
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進(jìn)行上采樣的種類實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

新郑市| 昌平区| 铜陵市| 于都县| 甘泉县| 吉安县| 库尔勒市| 大关县| 黎川县| 中江县| 固安县| 石楼县| 牡丹江市| 万安县| 荥经县| 白银市| 介休市| 鸡泽县| 南郑县| 托克逊县| 延寿县| 平顶山市| 雷波县| 鄂州市| 阳新县| 嘉祥县| 兴和县| 绥德县| 宜丰县| 东丽区| 夹江县| 岳阳市| 兴城市| 麟游县| 武功县| 余江县| 土默特左旗| 衡南县| 上虞市| 盐津县| 迁安市|