Skip to main content

Grain: A library for loading and transforming data for ML training.

Project description

Grain - Feeding JAX Models

Continuous integration PyPI version

Installation | Quickstart | Reference docs

Grain is a Python library for reading and processing data for training and evaluating JAX models. It is flexible, fast and deterministic.

Grain allows to define data processing steps in a simple declarative way:

import grain

dataset = (
    grain.MapDataset.source([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    .shuffle(seed=42)  # Shuffles elements globally.
    .map(lambda x: x+1)  # Maps each element.
    .batch(batch_size=2)  # Batches consecutive elements.
)

for batch in dataset:
  # Training step.

Grain is designed to work with JAX models but it does not require JAX to run and can be used with other frameworks as well.

Installation

Grain is available on PyPI and can be installed with pip install grain.

Supported platforms

Grain does not directly use GPU or TPU in its transformations, the processing within Grain will be done on the CPU by default.

Linux Mac Windows
x86_64 yes no no
aarch64 yes yes n/a

Quickstart

Existing users

Grain is used by MaxText, Gemma, kauldron and multiple internal Google projects.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

grain_nightly-0.2.11.dev20250623-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (488.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.11.dev20250623-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (487.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.11.dev20250623-cp313-cp313-macosx_11_0_arm64.whl (404.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.11.dev20250623-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (488.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.11.dev20250623-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (486.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.11.dev20250623-cp312-cp312-macosx_11_0_arm64.whl (404.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.11.dev20250623-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (486.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.11.dev20250623-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (485.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.11.dev20250623-cp311-cp311-macosx_11_0_arm64.whl (403.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.11.dev20250623-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (486.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.11.dev20250623-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (485.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.11.dev20250623-cp310-cp310-macosx_11_0_arm64.whl (403.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d53e7a27eee438a95ac65dbd28ab22cfacb67f7500d3ed025b54c00626bb1b2e
MD5 bce2bca9a5031f200cc1ebce5ce3803d
BLAKE2b-256 8d3eb68a1951a4ca2abb6a81324fd0d629e3e8823f6d36520af1d025e3f28812

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 50e9c28080147399ea30b31fc4c9794f2c32d7e27ba838204b77d1dd059e4884
MD5 7795d332ca12b5975785979a1e81ff96
BLAKE2b-256 ffc5cb3df8216dfcf13c834196f7f0a01a0871cb2875ad86f4d8154c038f22d9

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b72d935c1c1408b52b1cf2f2ea434fce6dd19898f99bba0137a3cc5adb82532
MD5 3d21567bdd161a106ed70a6c0df17b11
BLAKE2b-256 3cde9eb3789181d81fdbe35b42a4df6c595665df05f5fccea9a03aebab65f67a

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 30c7fb99b5a7a51d7f48a5b2eced0e0ba640a6653321076e530e2852068e697f
MD5 080559c6b7e4313ee0ef3e0a41dd27ac
BLAKE2b-256 536ff2b10069af13c457b05482474645f0be5c6e0f92f056a8252029df8ff8d5

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 0b898f9f26d89384fd5ff6d6043fbc3da5ef1fa19c374bcbeb2b8bdf4ea845f1
MD5 b98733d3224cf8fa6397ae064d673ebd
BLAKE2b-256 70faf47bff1e212a663d598679cf37c4de1e64c19518e187e23f2bfe2d0a5921

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa752323ebab36a08a6a714a2320f3a30256b37c94288b49be94fcacebeb2d33
MD5 057ea8e39f91376ca55bfc40ccb74173
BLAKE2b-256 36e6eb13a532e5a4ef1da377f0c37006516713c115d1b8e677aca5c854674418

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6a3f20e61669110bc650365a83dcad075d2ea394df4c28cb17bc335d050b5339
MD5 c4df3ae70ca306c13aec1323292c58c3
BLAKE2b-256 93c3b6b961c8c6540e7ffcf107fc0958e6744bbb079645bc8288934d9cc8243f

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 0c8d019da59f8829262b6a89d28727782bd93968ad9a817c81e632fa25031401
MD5 d7054fbca06ffef1b2ff7447dc6b8543
BLAKE2b-256 39a68ff5c67d3c70dc6cf79708e8b1cb7217bf37fcfa7fbb40d5323421f7c529

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2a8050a8c223a32e4e698e02a811d19a8f6313fdeace51e6d0391ae18771f5e
MD5 e8e23fa5a631f336eb214a5eaf13fd69
BLAKE2b-256 b07ba88ad34f86aea5dafd358963efcbe07a6d6daef52028cd5b3be2fd049662

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 392a3c1a93013d607fa9b9c7631af3c8a9f3832e20364f22e68602e55685caf4
MD5 597563b915053bb1d6aaa4cb5bc1d4c6
BLAKE2b-256 ce3ae661ba65167c761152a3d8f1ad4bef9edaec9da0649d54f3a2bdcf1826a1

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 8ef3f6a19f3b944c4e1f05caf6d5abf09be77e1cd335786d0f74942d5c3ed80d
MD5 72d523999e973bc0c1cbd12d0303c384
BLAKE2b-256 edfc0dcee884562b2f3ee79349218c16220137311391f6b6e64fce12e4ade9e6

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250623-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250623-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7fc61dac46ebd178188f4bb458936f80bcb13718158af8f2e92b9381856d0c20
MD5 e1e9a7e6fadd845d3f19ca5eefd9c5c3
BLAKE2b-256 77cf73df613d7d7b99751f7a840a9629248bea1d41f0dfb3dcf5f95dea22e116

See more details on using hashes here.

Supported by

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