欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytorch實(shí)現(xiàn)各種2d卷積示例

 更新時(shí)間:2019年12月30日 15:03:13   作者:Learn2Learn  
今天小編就為大家分享一篇Pytorch實(shí)現(xiàn)各種2d卷積示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

普通卷積

使用nn.Conv2d(),一般還會(huì)接上BN和ReLu

參數(shù)量NNCin*Cout+Cout(如果有bias,相對(duì)來說表示對(duì)參數(shù)量影響很小,所以后面不考慮)

class ConvBNReLU(nn.Module):

 def __init__(self, C_in, C_out, kernel_size, stride, padding, affine=True):
  super(ConvBNReLU, self).__init__()
  self.op = nn.Sequential(
   nn.Conv2d(C_in, C_out, kernel_size, stride=stride, padding=padding, bias=False),
   nn.BatchNorm2d(C_out, eps=1e-3, affine=affine),
   nn.ReLU(inplace=False)
  )

 def forward(self, x):
  return self.op(x)

深度可分離卷積depthwise separable convolution

卷積操作可以分為NN 的Depthwise卷積(不改變通道數(shù))和11的Pointwise卷積(改變?yōu)檩敵鐾ǖ罃?shù)),同樣后接BN,ReLU。參數(shù)量明顯減少

參數(shù)量:

NNCin+Cin11*Cout

class SepConv(nn.Module):
 
 def __init__(self, C_in, C_out, kernel_size, stride, padding, affine=True):
  super(SepConv, self).__init__()
  self.op = nn.Sequential(
   nn.ReLU(inplace=False),
   nn.Conv2d(C_in, C_in, kernel_size=kernel_size, stride=stride, padding=padding, groups=C_in, bias=False),
   nn.Conv2d(C_in, C_out, kernel_size=1, padding=0, bias=False),
   nn.BatchNorm2d(C_out, eps=1e-3, affine=affine)
   )
 def forward(self, x):
  return self.op(x)

空洞卷積dilated convolution

空洞卷積(dilated convolution)是針對(duì)圖像語義分割問題中下采樣會(huì)降低圖像分辨率、丟失信息而提出的一種卷積思路。利用添加空洞擴(kuò)大感受野。

參數(shù)量不變,但感受野增大(可結(jié)合深度可分離卷積實(shí)現(xiàn))

class DilConv(nn.Module):
  
 def __init__(self, C_in, C_out, kernel_size, stride, padding, dilation, affine=True):
  super(DilConv, self).__init__()
  self.op = nn.Sequential(
   nn.ReLU(inplace=False),
   nn.Conv2d(C_in, C_in, kernel_size=kernel_size, stride=stride, padding=padding, dilation=dilation, groups=C_in, bias=False),
   nn.Conv2d(C_in, C_out, kernel_size=1, padding=0, bias=False),
   nn.BatchNorm2d(C_out, eps=1e-3, affine=affine),
   )

 def forward(self, x):
  return self.op(x)

Identity

這個(gè)其實(shí)不算卷積操作,但是在實(shí)現(xiàn)跨層傳遞捷徑

class Identity(nn.Module):

 def __init__(self):
  super(Identity, self).__init__()

 def forward(self, x):
  return x

以上這篇Pytorch實(shí)現(xiàn)各種2d卷積示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論