Skip to main content

Squirrel is a Python library that enables ML teams to share, load, and transform data in a collaborative, flexible, and efficient way.

Project description

Squirrel Core

Share, load, and transform data in a collaborative, flexible, and efficient way

PyPI Downloads License Documentation Status Generic badge Slack


What is Squirrel?

Squirrel is a Python library that enables ML teams to share, load, and transform data in a collaborative, flexible, and efficient way.

  1. SPEED: Avoid data stall, i.e. the expensive GPU will not be idle while waiting for the data.

  2. COSTS: First, avoid GPU stalling, and second allow to shard & cluster your data and store & load it in bundles, decreasing the cost for your data bucket cloud storage.

  3. FLEXIBILITY: Work with a flexible standard data scheme which is adaptable to any setting, including multimodal data.

  4. COLLABORATION: Make it easier to share data & code between teams and projects in a self-service model.

Stream data from anywhere to your machine learning model as easy as:

it = (Catalog.from_plugins()["imagenet"].get_driver()
      .get_iter("train")
      .map(lambda r: (augment(r["image"]), r["label"]))
      .batched(100))

Check out our full getting started tutorial notebook. If you have any questions or would like to contribute, join our Slack community.

Installation

Currently, we have not released a functional version of squirrel-core and squirrel-datasets-core into the public pypi registry. Therefore we ask you to use the following installation method, which uses the source code directly:

First, you need to clone the squirrel-core and squirrel-datasets-core repositories by:

git clone https://github.com/merantix-momentum/squirrel-core.git

and

git clone https://github.com/merantix-momentum/squirrel-datasets-core.git

Then you can install both packages by

pip install -e "squirrel-core[all]"

and

pip install -e "squirrel-datasets-core[all]"

In the documentation, you may also see some requirements to install the two packages first, please follow the instruction above, instead of installing from public pypi registry (e.g pip install squirrel-core or pip install squirrel-datasets-core). We kindly ask for your patience.

Documentation

To view the docs locally, please use the following command in root directory of the repo:

sphinx-build ./docs ./docs/build

The command above will create all documentation pages under ./docs/build. To view the start page, open ./docs/build/index.html in your browser.

Example Notebooks

Check out the Squirrel-datasets repository for open source and community-contributed tutorial and example notebooks of using Squirrel.

Contributing

Squirrel is open source and community contributions are welcome!

Check out the contribution guide to learn how to get involved.

The humans behind Squirrel

We are Merantix Momentum, a team of ~30 machine learning engineers, developing machine learning solutions for industry and research. Each project comes with its own challenges, data types and learnings, but one issue we always faced was scalable data loading, transforming and sharing. We were looking for a solution that would allow us to load the data in a fast and cost-efficient way, while keeping the flexibility to work with any possible dataset and integrate with any API. That's why we build Squirrel – and we hope you'll find it as useful as we do! By the way, we are hiring!

Citation

If you use Squirrel in your research, please cite it using:

@article{2022squirrelcore,
  title={Squirrel: A Python library that enables ML teams to share, load, and transform data in a collaborative, flexible, and efficient way.},
  author={Squirrel Developer Team},
  journal={GitHub. Note: https://github.com/merantix-momentum/squirrel-core},
  year={2022}
}

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

squirrel-core-0.12.0.dev5192.tar.gz (50.1 kB view details)

Uploaded Source

Built Distribution

squirrel_core-0.12.0.dev5192-py3-none-any.whl (65.4 kB view details)

Uploaded Python 3

File details

Details for the file squirrel-core-0.12.0.dev5192.tar.gz.

File metadata

  • Download URL: squirrel-core-0.12.0.dev5192.tar.gz
  • Upload date:
  • Size: 50.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.9

File hashes

Hashes for squirrel-core-0.12.0.dev5192.tar.gz
Algorithm Hash digest
SHA256 f8db01d4507f969a97579107c369750e7b9a7827cb06d1871e051e717cd066af
MD5 2e8b13669310541cd101dd410f128ea3
BLAKE2b-256 28c5c84e4db4f87346a86271b1028a132d5423838f8049b8e9eb653cdf4fae87

See more details on using hashes here.

File details

Details for the file squirrel_core-0.12.0.dev5192-py3-none-any.whl.

File metadata

  • Download URL: squirrel_core-0.12.0.dev5192-py3-none-any.whl
  • Upload date:
  • Size: 65.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.9

File hashes

Hashes for squirrel_core-0.12.0.dev5192-py3-none-any.whl
Algorithm Hash digest
SHA256 d84d379fabc4b2f26ef961fa74a9cbd6d86a63a90bf32844cec6e335051623e9
MD5 6d12df63ec6b2e0edd10a2c75666aa6e
BLAKE2b-256 b6b51e75a0e948d65cdd6689e2e135d76542105e18db84860d4d9d1d5580f7c1

See more details on using hashes here.

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