< Network > Understanding DepthWiseConv

Some knowledge about DepthWiseConv

As we all know, people invent DepthWiseConv for more efficient computation cost without accuracy loss.

DepthwiseConv coupled with PointWiseConv could be equal to normal convlution.

DepthWiseConv means that we assign a single kernel to each feature channel. PointWiseConv is a normal convolution kernel with kernel size 1 and stride 1.

DepthWiseConv aims to extract the spatial feature of a feature map, while PointWiseConv aims to extracte the correlation of different feature maps.

What pre-feature should be fed to DeptWiseConv

In this section, we would discuss what pre-feature should be fed to DeptWiseConv.

Of course we can feed normal feature from normal convolution layers. But people find it may be more efficient if we firstly expand the channels of the pre-feature and then feed them to the DepthWiseConv.

Actually this is what mobilenet_v2 just did in their network structure which is called ‘inverted bottleneck’.

We can treat the expansion of the pre-feature as a process of feature uncompression. Why we should uncompress feature before depthwise?

From my point of view, if we want to extract more useful spatial information using DepthWiseConv, we should firstly extract more correlated information among pre-features. So there is reason why we want to expand the channels of the pre-feature.

< Network > Understanding DepthWiseConv

https://zhengtq.github.io/2019/03/29/network-depthwise/

Author

Billy

Posted on

2019-03-29

Updated on

2021-03-13

Licensed under

Comments