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 | Change logs

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

Citing Grain

To cite this repository:

@software{grain2023github,
  author = {Marvin Ritter and Ihor Indyk and Aayush Singh and Andrew Audibert and Anoosha Seelam and Camelia Hanes and Eric Lau and Jacek Olesiak and Jiyang Kang and Xihui Wu},
  title = {{Grain} - Feeding JAX Models},
  url = {http://github.com/google/grain},
  version = {0.2.12},
  year = {2023},
}

The version number is intended to be that from pyproject.toml, and the year corresponds to the project's open-source release.

Existing users

Grain is used by MaxText, Gemma, kauldron, maxdiffusion 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.13.dev20250929-cp313-cp313-win_amd64.whl (426.1 kB view details)

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.13.dev20250929-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (508.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.13.dev20250929-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (507.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.13.dev20250929-cp313-cp313-macosx_11_0_arm64.whl (434.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.13.dev20250929-cp312-cp312-win_amd64.whl (426.0 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.13.dev20250929-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (507.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.13.dev20250929-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (507.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.13.dev20250929-cp312-cp312-macosx_11_0_arm64.whl (434.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.13.dev20250929-cp311-cp311-win_amd64.whl (425.8 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.13.dev20250929-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (509.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.13.dev20250929-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (508.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.13.dev20250929-cp311-cp311-macosx_11_0_arm64.whl (437.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.13.dev20250929-cp310-cp310-win_amd64.whl (424.1 kB view details)

Uploaded CPython 3.10Windows x86-64

grain_nightly-0.2.13.dev20250929-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (508.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.13.dev20250929-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (507.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.13.dev20250929-cp310-cp310-macosx_11_0_arm64.whl (435.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6adf19892e18ebbe54ded1057a36baccc282f649a4eb83810d1214e5c0db1e87
MD5 fb698e22b4bb5d139bb6784705b3a185
BLAKE2b-256 675f8838f0882310bb6af9efb61acef8eed78ab0b7acea8301f4b64201142aeb

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 35df2a008d750d7ddf7a59dbc07690379b05cd07ac6ceee3bb10d347f22f8ae4
MD5 a109e85e1af4dff27c0880375f934be6
BLAKE2b-256 76f47400aa6e8ee77ef30ba9b3dfe438bb4e4d4c1e1d403ac7dd2788299afd55

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 faf968f8a3103e53252f4e113b50a4e29827c75ec0cacb25389def9b3cb7dfcf
MD5 5813ce618b0467970222b09c8b430c9f
BLAKE2b-256 32c3a00e458f36f4fb4a713ba0c607fdca40a59d4c6198ce98880599c7530a23

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac02c1390a9a798f03e1c128437f74e713aa131f1fae926cc92b402bc91b97c7
MD5 0d1e7732d3e554d90705c35c120c88ab
BLAKE2b-256 8da991f7434a7ab0565095bd741a6fb908f87d0e32e9d03ab64e3f675575dca8

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4ad74d66b2e123290af8ac8ec36279b38f3a0fa62304fedb7a9aa2ba8b6d21f7
MD5 4b6b7372c3a9c68135f9858eb63973a0
BLAKE2b-256 a80dc129bf9a659de4b75834934d3a82c9e84a3389707d76316ceff29ba862b2

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c8a350ce6431e57050339829dc32fef0187a2da5d78f935c83279c96bdf52df7
MD5 7b50ee45e9d274de7360bbeb6817ed73
BLAKE2b-256 b956076a12770de81da5a57c79061778a2485acdf43f0dd4137cd361b5cd1b74

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 b5f9201a573b6c013b4f5ac3c2b266d057b770c4559ddcaad5449385818bf603
MD5 e63b4891495a4fc3570e7ab0d81a633c
BLAKE2b-256 f1213ad6d3c47a45b3582909cc8abde9350d2a5d2ed75d808a50114f7151a5b7

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3afb31906eb3f41562bcf760cfb13073fcf4eb92985e56016f8079457c7866c
MD5 19e62bbca6e53e117a1f00bd9f5bebdd
BLAKE2b-256 e69765e1133e53485fdcf6cdd2f9ca39ff8046a18eb41fa4d4b72e88b8ab12ff

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d4416d9376bc316b64788e8bc55ecded12177cb4b3b18e24deb3f5a4047457fc
MD5 62fb4a65e16ab95a1e5f10c8bda1ee28
BLAKE2b-256 a18fb7b5f4b767f97654a62e84588be3c0611ea7f130d2dbc1f171a987381fa8

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 873b81a1f5e21db13419f70f53953cda83532607e047dafe27a573f627f20d2f
MD5 a55158d10f624b6b964b5d84970686eb
BLAKE2b-256 5903262bec782632e782571caa2f37cdf855525478bb1edf844cfb2e243ecc6b

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 dff2b52a4b0ad5fdd7099ced92134d4b4c6e24283a8ff1539f61312f408a69b7
MD5 9200a1fde57b176e42dc864b0f325137
BLAKE2b-256 021c352d3494d79596d44c7c4e8fa2b2c8153f5af75182adaaf907386dfbb33e

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ed1b0c0fb46068863b31b13ebe36ba794cc18745a2b9a3a4b938876300e1d3e
MD5 30b82c5b2caeaa22cfca1ab9cb29d537
BLAKE2b-256 03d72ac786327dbf6676c49ed10a0539253f0caea1a4d9169530654e148c8505

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 35935a0d96e2c6da1959b499dc25c973b64ee7c00fc675018e0054c6ac606b2b
MD5 62f53a36090df7f426d360bd5315e8b0
BLAKE2b-256 3d07a0a5d695fa530c30f6132d260bac6a5be1b67d07cf968ece26309d84b580

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 986826d64e5d22d3454225d8fb3e4405976ef24cd5b1a95b553e234572651b65
MD5 90607a201e1c8b0d5df1a10ea2f7714e
BLAKE2b-256 05a220d22ec9cbcd066030ce0783b1aa7d7acdc4eac2f36a2ad58e9dfd699f70

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 86360f8cacfbd1e90e50b43682bfa976ed37f10a4320ca576021c3eb4d371493
MD5 15fa0f866e86a680eb509611e6c8d405
BLAKE2b-256 fadb2eab3fd82d44fb3dde0665564c0ecd06652af12ca52850369b2e4df9290c

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.13.dev20250929-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250929-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc066ad5b41d5af919b1007ed9e5527f2ca2aceb45b001c8a0c05660d5abec01
MD5 0a0b071a92641c58a2a71dd18f872d03
BLAKE2b-256 c73b257577ab963cf68469c33b9eef98a1e8344f48f6533b69408d8676ca96b2

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