/FFC

This is an official pytorch implementation of Fast Fourier Convolution.

Primary LanguagePythonApache License 2.0Apache-2.0

Fast Fourier Convolution (FFC) for Image Classification

This is the official code of Fast Fourier Convolution for image classification on ImageNet.

Main Results

Results on ImageNet

Method GFLOPs #Params Top-1 Acc
ResNet-50 4.1 25.6 76.3
FFC-ResNet-50 4.2 26.1 77.6
FFC-ResNet-50 (+LFU) 4.3 26.7 77.8

Quick starts

Requirements

  • pip install -r requirements.txt

Data preparation

You can follow the Pytorch implementation: https://github.com/pytorch/examples/tree/master/imagenet

Training

To train a model, run main.py with the desired model architecture and other super-paremeters:

python main.py -a ffc_resnet50 --lfu [imagenet-folder with train and val folders]

We use "lfu" to control whether to use Local Fourier Unit (LFU). Default: False.

Testing

python main.py -a ffc_resnet50 --lfu --resume PATH/TO/CHECKPOINT [imagenet-folder with train and val folders]

Citation

If you find this work or code is helpful in your research, please cite:

@InProceedings{Chi_2020_FFC,
  author = {Chi, Lu and Jiang, Borui and Mu, Yadong},
  title = {Fast Fourier Convolution},
  booktitle = {Advances in Neural Information Processing Systems},
  year = {2020}
}