Official PyTorch Repository of "Task Discrepancy Maximization for Fine-grained Few-Shot Classification (CVPR 2022 Oral Paper)"
[2023/11/21] We released an extended version of TDM (called IAM). It is currently under review, and the code will be released after that.
[2023/01/03] We omitted the random loss, which prevents overfitting, in training. Please add "--noise" to the training code. Sorry for the confusion.
The following datasets are used in our paper:
CUB_200_2011: Dataset Page
FGVC-Aircraft: Dataset Page
iNaturalist2017 : Dataset Page
Stanford-Cars : Dataset Page
Stanford-Dogs : Dataset Page
Oxford-Pets : Dataset Page
Please proceed with the setting up data by referring to FRN Github.
Here, all the pretrained weights with ProtoNet and FRN are publicized. Pretrained weights
All the requirements to run the code are in requirements.txt You can download requirements by running below script.
pip install -r requirements.txt
To evaluate the code with pretrained weights, we provide an example script below.
Test the ProtoNet 1-shot in CUB_cropped with Conv-4.
(pretrained_weight: /Proto/CUB_fewshot_cropped/TDM/Conv4-1shot/model_Conv-4.pth)
python3 test.py --train_way 5 --train_shot 1 --gpu_num 1 --model Proto --dataset cub_cropped --TDM
Test the ProtoNet 5-shot in CUB_cropped with Conv-4.
(pretrained_weight: /Proto/CUB_fewshot_cropped/TDM/Conv4-5shot/model_Conv-4.pth)
python3 test.py --train_way 5 --train_shot 5 --gpu_num 1 --model Proto --dataset cub_cropped --TDM
Test the FRN 1-shot and 5-shot in CUB_cropped with Conv-4.
(pretrained_weight: /FRN/CUB_fewshot_cropped/TDM/Conv4-5shot/model_Conv-4.pth)
python3 test.py --train_way 5 --train_shot 5 --gpu_num 1 --model FRN --dataset cub_cropped --TDM
We provide scripts for training. Other shell scripts are in the scripts directory.
python3 train.py --model Proto --dataset aircraft --opt sgd --lr 1e-1 --gamma 1e-1 --epoch 400 --stage 3 --val_epoch 20 --weight_decay 5e-4 --nesterov --train_way 30 --train_shot 1 --train_transform_type 0 --test_shot 1 --pre --gpu_num 1
As we mentioned in our supplementary, we found that CTX and DSN show better performances in 1-shot when they are evaluated by models trained with 5-shot episodes. Therefore, we trained all models with 5-shot episodes except ProtoNet because it shows performance degradation.
If you find TDM helpful for your works, please consider citing:
@InProceedings{Lee_2022_CVPR,
author = {Lee, SuBeen and Moon, WonJun and Heo, Jae-Pil},
title = {Task Discrepancy Maximization for Fine-Grained Few-Shot Classification},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022},
pages = {5331-5340}
}
If there are any questions, please feel free to contact with the authors: SuBeen Lee ([email protected]) WonJun Moon ([email protected]). Thank you.