JUGGHM / OREPA_CVPR2022

CVPR 2022 "Online Convolutional Re-parameterization"
Apache License 2.0
169 stars 16 forks source link

About orepa block extending to 3D #10

Open leeh43 opened 2 years ago

leeh43 commented 2 years ago

作者你好,非常喜歡你這篇文章的idea,然後我現在是想extend到3D,但是我沒有太看懂在OREPA function裡的self.fre_init的作用,可以再解釋一下ma? 然後對於prior_tensor,我們能變成3D的嗎?

JUGGHM commented 2 years ago

作者你好,非常喜歡你這篇文章的idea,然後我現在是想extend到3D,但是我沒有太看懂在OREPA function裡的self.fre_init的作用,可以再解釋一下ma? 然後對於prior_tensor,我們能變成3D的嗎?

Thank you for your interest Lee! The self.freq_init function aims at generating the basis corresponding to different spatial frequency patterns. This idea comes from the work FcaNet: Frequency Channel Attention Network, where the average pooling layer in the squeeze-and-excitation module is regarded as a low-frequency component calculation step, and that some high-frequency component can also be introduced. This idea could probably be inspired that all discrete signals can be represented by a series of weights on different frequencies, and high-frequency component might be lost when conducting average pooling. In our work, the self.freq_init also tries to generate such patterns, whose formulary expression is listed in the first table of the appendix.

We could also extend the prior tensor into 3D if only we calculate some 3D basis. If you are not familiar with how the frequency transformation works, you could refer to discrete cosine transform, which is a part of the discrete variant of Fourier transformation.