Implementation of Receptive Field convolutional layer in pytorch. This idea was originally presented in Structured Receptive Fields paper. To run the code:
- download and install using pip install -e convrf
- Take a look at example.py for an example of convrf convolutional layer usage.
- Choose the fitlerbank: "nn_bank" or "frame" or "pframe". It is not recommended to use "nn_bank" as it almost always produces inferior results.
- play around with "kernel_drop_rate" parameter to see what value fits best to your application. kernel_drop_rate = 0 uses all the filters in the family.
- You can play around with "gain" parameter which enlarges or shrinks the support of the weight coefficients initialization kaiming uniform distribution if you feel like it, not it is not necessary.
In case you use this project in your research please cite these two respositories in your code:
kazemSafari/convrf
nkarantzas/dynamic
and cite these three papers as well: Structured Receptive Fields, On the design of multi-dimensional compactly supported parseval framelets with directional characteristics, and the main paper which I will share the link shortly.