Skip to main content

A modular toolbox for accelerating meta-learning research :rocket:

Project description

logo

A Modular Toolbox for Accelerating Meta-Learning Research :rocket:


PyPI - Python Version PyPI Status Badge Build Status Documentation Status Coverage Status Code style: black

Meta-Blocks is a modular toolbox for research, experimentation, and reproducible benchmarking of learning-to-learn algorithms. The toolbox provides flexible APIs for working with MetaDatasets, TaskDistributions, and MetaLearners (see the figure below). The APIs make it easy to implement a variety of meta-learning algorithms, run them on well-established and emerging benchmarks, and add your own meta-learning problems to the suite and benchmark algorithms on them.

System Illustration

Meta-Blocks package comes with:

  • Flexible APIs, detailed documentation, and multiple examples.
  • Popular models and algorithms such as MAML [1], Reptile [2], Protonets [3].
  • Supervised and unsupervised meta-learning setups compatible with all algorithms.
  • Customizable modules and utility functions for quick prototyping on new meta-learning algorithms.

Links and Resources:


Installation

It is recommended to use pip for installation. Please make sure the latest version is installed, as meta-blocks is updated frequently:

$ pip install meta-blocks            # normal install
$ pip install --upgrade meta-blocks  # or update if needed
$ pip install --pre meta-blocks      # or include pre-release version for new features

Alternatively, you could clone and run setup.py file:

$ git clone https://github.com/alshedivat/meta-blocks.git
$ cd meta-blocks
$ pip install .

Required Dependencies :

  • albumentations
  • hydra-core
  • numpy
  • Pillow
  • scipy
  • scikit-learn
  • tensorflow>=2.1

Examples

TODO: We should provide a minimal example so people could run immediately. Ideally, the running time should be within a few mins.


Development

For development and contributions, please install pre-commit hooks to ensure proper code style and formatting:

$ pip install pre-commit      # install pre-commit
$ pre-commit install          # install git hooks
$ pre-commit run --all-files  # run pre-commit on all the files

Status

Meta-Blocks is currently under development as of Apr, 2020.

Watch & Star to get the latest update! Also feel free to contact for suggestions and ideas.


Citing Meta-Blocks

TODO: add citation information as soon as available.


Reference

[1] Finn, C., Abbeel, P. and Levine, S. Model-agnostic meta-learning for fast adaptation of deep networks. ICML 2017.

[2] Nichol, A., Achiam, J. and Schulman, J. On first-order meta-learning algorithms. arXiv preprint arXiv:1803.02999.

[3] Snell, J., Swersky, K. and Zemel, R. Prototypical networks for few-shot learning. NeurIPS 2017.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meta_blocks-0.1a1.tar.gz (10.1 kB view hashes)

Uploaded Source

Built Distribution

meta_blocks-0.1a1-py3-none-any.whl (23.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page