Skip to content

v1.4.0

Compare
Choose a tag to compare
@ebennequin ebennequin released this 06 Jun 08:42
· 14 commits to master since this release
4822039

🤯 Huge release including 4 new methods, new standardized backbones and modules, improvements to existing methods and some datasets API, and numbered reproducible benchmarks on miniImageNet and tieredImageNet!

Incredible New Features

  • Add 4 new methods: SimpleShot, FEAT, LaplacianShot, PT-MAP
  • Add new modules:
    • MultiHeadAttention: default attention module used in FEAT
    • feat_resnet12: default backbone used in FEAT
    • utility feat_resnet12_from_checkpoint to load pre-trained weights for feat_resnet12
  • Add scripts to evaluate methods:
    • predict_embeddings to extract all embeddings from a dataset using a pre-trained backbone
    • benchmark_methods to evaluate a few-shot method on a dataset of pre-extracted features
    • config files to ease reproduction
  • Add result tables to README for miniImageNet and tieredImageNet
  • Add utilities:
    • Add a torch implementation of k_nearest_neighbours()
    • Add a strip_prefix() method that removes a specified prefix from the keys of an OrderectDict (can be used for torch state dicts)

Minor changes

  • TIM now uses cosine distance instead of L2 distance
  • Add parameterization of the softmax temperature in TransductiveFinetuning, Finetune, and TIM
  • Add some non-breaking changes to the datasets:
    • Add option image_file_extension to facilitate the use of the small version of the DanishFungi dataset
    • Make CUB and TieredImageNet extensions of EasySet instead of methods returning an instance of EasySet to improve typing consistency between datasets

Next steps

This release is a huge step because it's the first time we commit on reproducible evaluations of the Few-Shot Learning methods in EasyFSL. We still need to improve and augment these benchmarks.

  1. Complete benchmark with Matching and Relation Nets, PT-MAP, Transductive Finetuning (est. July 23)
  2. Add explicit hyperparameter selection (est. July 23)
  3. Add feature normalization as it's been proven to have a huge impact on the results (est. July 23)
  4. Add cross-domain benchmarks (CUB, Fungi) and using other backbones (est. September 23)

Any help is welcome!