1. 程式人生 > 其它 >Maven 倉庫配置

Maven 倉庫配置

  單從名稱進行分析,Depthwise可理解為逐深度,如此理解,深度可分離卷積就是逐個深度分開卷積,也就是逐個通道分開卷積,
如下圖:

 假設原來是3*3的卷積,那麼depthwise separable convolution就是先用M個3*3卷積核一對一卷積輸入的M個feature map,不求和,生成M個結果;然後用N個1*1的卷積核正常卷積前面生成的M個結果,求和,最後生成N個結果。

直接上pytorch程式碼:

class CSDN_Tem(nn.Module):
def __init__(self, in_ch, out_ch):
super(CSDN_Tem, self).__init__()
self.depth_conv = nn.Conv2d(
in_channels=in_ch,
out_channels=in_ch,
kernel_size=3,
stride=1,
padding=1,
groups=in_ch
)
self.point_conv = nn.Conv2d(
in_channels=in_ch,
out_channels=out_ch,
kernel_size=1,
stride=1,
padding=0,
groups=1
)

def forward(self, input):
out = self.depth_conv(input)
out = self.point_conv(out)
return out

替代後訓練發現,和原來的3*3普通卷積效果很接近,速度上快了不少。