Skip to content

shiyuanh/TANE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition

This is the code repository for "Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition" (accepted by CVPR 2022).

Installation

This repo is tested with Python 3.6, Pytorch 1.8, CUDA 10.1. More recent versions of Python and Pytorch with compatible CUDA versions should also support the code.

Data Preparation

MiniImageNet image data are provided by RFS, available at DropBox. We also provide the word embeddings for the class names here. For TieredImageNet, we use the image data and word embeddings provided by AW3, available at GoogleDrive. Download and put them under your <data_dir>.

Pre-trained models

We provide the pre-trained models for TieredImageNet and MiniImageNet, which can be downloaded here. Save the pre-trained model to <pretrained_model_path>.

Training

An example of training command for 5-way 1-shot FSOR:

python train.py --dataset <dataset> --logroot <log_root>  --data_root <data_dir> \ 
                --n_ways 5  --n_shots 1 \
                --pretrained_model_path <pretrained_model_path> \
                --featype OpenMeta \
                --learning_rate 0.03 \
                --tunefeat 0.0001 \
                --tune_part 4 \
                --cosine \
                --base_seman_calib 1 \
                --train_weight_base 1 \
                --neg_gen_type semang                 

Testing

An example of testing command for 5-way 1-shot FSOR:

python test.py --dataset <dataset>  --data_root <data_dir> \
               --n_ways 5  --n_shots 1 \
               --pretrained_model_path <pretrained_model_path> \
               --featype OpenMeta \
               --test_model_path <test_model_path> \
               --n_test_runs 1000 \
               --seed <seed> 

Pre-training

We also provide the code for the pre-training stage under pretrain folder. An example of running command for pre-training on miniImageNet:

python batch_process.py --featype EntropyRot --learning_rate 0.05

Citation

If you find this repo useful for your research, please consider citing the paper:

@InProceedings{Huang_2022_CVPR,
    author    = {Huang, Shiyuan and Ma, Jiawei and Han, Guangxing and Chang, Shih-Fu},
    title     = {Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2022},
    pages     = {7171-7180}
}

Acknowledgement

Our code and data are based upon RFS and AW3.

About

Code Repository for "Task-Adaptive Negative Envision for Few-Shot Open-Set Recognition"

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages