FasterNet icon indicating copy to clipboard operation
FasterNet copied to clipboard

PConv is similar to GhostConv

Open baowenshuwh opened this issue 2 years ago • 1 comments

Dear author, in order to use redundant feature information, PConv is proposed in this paper. However, Partial convolution is so similar to Ghost convolution. Ghost convolution uses half of the channels for 3x3 convolution, while PConv only uses a quarter. Can you explain?

baowenshuwh avatar Mar 26 '23 08:03 baowenshuwh

Hi, this work shares the same motivation as GhostNet to leverage the similarity of feature maps. However, there are some key differences in terms of the design:

  1. A Ghost module first applies a regular conv on the input (all channels) to generate the intrinsic feature maps (part of the output channels, e.g., a half) while PConv is conducted on part of the input channels (e.g., a quarter). Therefore, PConv considers the input redundancy along the channel dimension while a Ghost module overlooks that.
  2. A Ghost module then applies a "cheap" operation (depthwise conv) on the intrinsic feature maps to produce the remaining part of the output. Here, the "cheap" operation is not that cheap in terms of its low FLOPs per second. By contrast, we simply use a fast Conv $1\times1$ on the output by PConv as well as those input channels untouched.
  3. GhostNet uses some squeeze and excite (SE) modules to boost its accuracy with only a little increase in FLOPs and # params. However, we opt not to do so to keep our core idea simple and centered, and to demonstrate its effectiveness.

There's still room for FasterNet. You are welcome to combine existing add-ons with our FasterNet. As for the selection of partial ratio, the optimal value is controlled by the feature map redundancy by nature and can be empirically found.

JierunChen avatar Mar 30 '23 14:03 JierunChen