91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pytorch進行上采樣的種類實例

發布時間:2020-10-18 18:02:36 來源:腳本之家 閱讀:119 作者:yangdashi888 欄目:開發技術

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進行上采樣的種類實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹿泉市| 布拖县| 房产| 咸宁市| 新民市| 安宁市| 容城县| 平湖市| 龙岩市| 惠安县| 南涧| 玉屏| 乳源| 辛集市| 聊城市| 叙永县| 宣威市| 新泰市| 西城区| 徐水县| 红河县| 耿马| 竹北市| 营口市| 遂溪县| 汤阴县| 舟曲县| 曲沃县| 大余县| 融水| 巴彦县| 宁明县| 洛浦县| 涞水县| 沁阳市| 香格里拉县| 汕尾市| 韩城市| 越西县| 长宁县| 巫山县|