Home

Awesome

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

MethodGFLOPs#ParamsTop-1 Acc
ResNet-504.125.676.3
FFC-ResNet-504.226.177.6
FFC-ResNet-50 (+LFU)4.326.777.8

Quick starts

Requirements

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}
}