You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Rename AbstractMetaLearner to FewShotClassifier
* Remove episodic training logic from few-shot classifiers
* Make FewShotClassifier support backbones on CUDA at initialization
* Add 4 new methods: Finetune, Transductive Finetuning, TIM and BD-CSPN
* Add SOTA ResNets for Few-Shot Learning
* Make modules parameterizable in Relation Networks and Matching Networks
* Add abstract class FewShotDataset for all few-shot datasets
* Make transforms parameterizable in EasySet
* Add format restrictions in EasySet
* Add TieredImageNet and CUB constructors using EasySet
* Add Danish Fungi dataset
* Add MiniImageNet
* Add notebooks for episodic training and classical training
* Add Python 3.9 support
[](https://colab.research.google.com/github/sicara/easy-few-shot-learning/blob/master/notebooks/my_first_few_shot_classifier.ipynb)
7
6
8
7
Ready-to-use code and tutorial notebooks to boost your way into few-shot image classification.
9
8
This repository is made for you if:
@@ -18,130 +17,131 @@ of code to be covered by a tutorial.
18
17
### Notebooks: learn and practice
19
18
You want to learn few-shot learning and don't know where to start? Start with our tutorial.
20
19
21
-
-**[First steps into few-shot image classification](notebooks/my_first_few_shot_classifier.ipynb)**
22
-
20
+
-**[First steps into few-shot image classification](notebooks/my_first_few_shot_classifier.ipynb)**:
21
+
basically Few-Shot Learning 101, in less than 15mn.
22
+
23
23
[](https://colab.research.google.com/github/sicara/easy-few-shot-learning/blob/master/notebooks/my_first_few_shot_classifier.ipynb)
24
24
25
+
-**[Example of episodic training](notebooks/episodic_training.ipynb)**:
26
+
use it as a starting point if you want to design a script for episodic training using EasyFSL.
27
+
28
+
-**[Example of classical training](notebooks/episodic_training.ipynb)**:
29
+
use it as a starting point if you want to design a script for classical training using EasyFSL.
30
+
25
31
### Code that you can use and understand
26
32
27
-
**Models:**
33
+
**State-Of-The-Art Few-Shot Learning methods:**
28
34
29
-
-[AbstractMetaLearner](easyfsl/methods/abstract_meta_learner.py): an abstract class with methods that can be used for
30
-
any meta-trainable algorithm
35
+
-[FewShotClassifier](easyfsl/methods/few_shot_classifier.py): an abstract class with methods that can be used for
-[Transductive Information Maximization](easyfsl/methods/tim.py)
44
+
45
+
To reproduce their results, you can use the [standard network architectures](easyfsl/modules/predesigned_modules.py)
46
+
used in Few-Shot Learning research. They're also a feature of EasyFSL!
34
47
35
48
**Tools for data loading:**
36
49
37
-
-[EasySet](easyfsl/data_tools/easy_set.py): a ready-to-use Dataset object to handle datasets of images with a class-wise directory split
38
-
-[TaskSampler](easyfsl/data_tools/task_sampler.py): samples batches in the shape of few-shot classification tasks
50
+
Data loading in FSL is a bit different from standard classification because we sample batches of
51
+
instances in the shape of few-shot classification tasks. No sweat! In EasyFSL you have:
52
+
53
+
-[TaskSampler](easyfsl/samplers/task_sampler.py): an extension of the standard PyTorch Sampler object, to sample batches in the shape of few-shot classification tasks
54
+
-[FewShotDataset](easyfsl/datasets/few_shot_dataset.py): an abstract class to standardize the interface of any dataset you'd like to use
55
+
-[EasySet](easyfsl/datasets/easy_set.py): a ready-to-use FewShotDataset object to handle datasets of images with a class-wise directory split
56
+
57
+
**And also:**[some utilities](easyfsl/utils.py) that I felt I often used in my research, so I'm sharing with you.
39
58
40
59
### Datasets to test your model
41
60
42
-
-[CU-Birds](http://www.vision.caltech.edu/visipedia/CUB-200.html): we provide [a script](scripts/download_CUB.sh) to download
43
-
and extract the dataset, along with [(train / val / test) split](data/CUB) along classes. The dataset is
44
-
ready-to-use with [EasySet](easyfsl/data_tools/easy_set.py).
45
-
-[tieredImageNet](https://paperswithcode.com/dataset/tieredimagenet): we provide the
46
-
[train, val and test specification files](data/tiered_imagenet) to be used by [EasySet](easyfsl/data_tools/easy_set.py).
47
-
To use it, you need the [ILSVRC2015](https://image-net.org/challenges/LSVRC/index.php) dataset. Once you have
48
-
downloaded and extracted the dataset, ensure that its localisation on disk is consistent with the class paths
49
-
specified in the specification files.
61
+
There are enough datasets used in Few-Shot Learning for anyone to get lost in them. They're all here,
62
+
explicited, downloadable and easy-to-use, in EasyFSL.
0 commit comments