This repository is Experment Code for Matching Network, ProtoNet, MAML and Distribution Propagation Graph Network
As an important branch of deep learning, few-shot Learning does not require a large amount of data but chooses a softer approach to solve problems, where it can be perfectly integrated with techniques such as meta learning and data augmentation. In this repository, I test four algorithms:Matching Network, ProtoNet, MAML and Distribution Propagation Graph NN on four FSL datasets: miniImageNet, Omniglot, CUB-200-2011 and CIFAR-FS.
CUDA Version: 10.4
Python : 3.6.9
To install dependencies:
sudo pip3 install -r requirements.txt
For your convenience, you can download the datasets directly from links on the left, or you can make them from scratch following the original splits on the right.
Dataset | Algorithms Paper |
---|---|
Mini-ImageNet | Matching Networks |
Omniglot | ProtoNet |
CIFAR-FS | MAML |
CUB-200-2011 | DP GNN |
Experment obtained the following performance on mini-ImageNet, Omniglot, CUB-200-2011 and CIFAR-FS.
miniImageNet:
Method | Backbone | 5way-1shot | 5way-5shot |
---|---|---|---|
MatchingNet | ConvNet | 43.56±0.84 | 55.31± 0.73 |
ProtoNet | ConvNet | 49.42±0.78 | 68.20±0.66 |
MAML | ConvNet | 48.70±1.84 | 55.31±0.73 |
DPGN | ConvNet | 66.01±0.36 | 82.83±0.41 |
CUB-200-2011:
Method | backbone | 5way-1shot | 5way-5shot |
---|---|---|---|
MatchingNet | ConvNet | 61.16±0.89% | 72.86±0.7% |
ProtoNet | ConvNet | 51.31±0.9% | 70.77±0.69% |
MAML | ConvNet | 55.92±0.95% | 72.09±0.76% |
DPGN | ConvNet | 76.05±0.51% | 89.08±0.38% |
CIFAR-FS:
Method | backbone | 5way-1shot | 5way-5shot |
---|---|---|---|
MatchingNet | ConvNet | - | - |
ProtoNet | ConvNet | 55.5±0.7% | 68.20±0.66% |
MAML | ConvNet | 58.9±1.9% | 71.5±1.0% |
DPGN | ConvNet | 77.9±0.5% | 90.2±0.4% |
Ominiglot:
Method | backbone | 5way-1shot | 5way-5shot |
---|---|---|---|
MatchingNet | ConvNet | 98.1% | 98.9% |
ProtoNet | ConvNet | 97.4% | 99.3% |
MAML | ConvNet | 98.7±0.4% | 99.9±0.3% |
DPGN | ConvNet | 99.2% | 99.7% |