fbcotter / pytorch_wavelets

Pytorch implementation of 2D Discrete Wavelet (DWT) and Dual Tree Complex Wavelet Transforms (DTCWT) and a DTCWT based ScatterNet
Other
943 stars 146 forks source link

The order of the input parameters of the AFB2D function #33

Closed wdanc closed 2 years ago

wdanc commented 3 years ago

Thanks for your great work. I have a question about the order of the input parameters of the AFB2D function. In the transform2d.py line 70-71, the function take input parameters as
ll, high = lowlevel.AFB2D.apply(ll, self.h0_col, self.h1_col, self.h0_row, self.h1_row, mode) https://github.com/fbcotter/pytorch_wavelets/blob/8d2e3b4289beaea9aa89f7b1dbb290e448331197/pytorch_wavelets/dwt/transform2d.py#L70

however, the function AFB2D forwardd in lowlevel.py line 336 take the order of inputs as h0_row, h1_row, h0_col, h1_col https://github.com/fbcotter/pytorch_wavelets/blob/8d2e3b4289beaea9aa89f7b1dbb290e448331197/pytorch_wavelets/dwt/lowlevel.py#L336

so, the order of the input "col col row row" seems to be inconsistent with the function's definition "row row col col". I wonder why it is entered in this way?

fbcotter commented 2 years ago

No reason, just bad practice by me! Happy to change it to be consistent

wdanc commented 2 years ago

No reason, just bad practice by me! Happy to change it to be consistent

Thanks for your reply. I have read relative functions, and I noticed you make sure the filters have the right dimension, therefore, the input order won't impact the result. And I'm happy that your answer helps me to confirm that.