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.dev20250908-cp313-cp313-win_amd64.whl (416.0 kB view details)

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.13.dev20250908-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (498.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.13.dev20250908-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (497.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.13.dev20250908-cp313-cp313-macosx_11_0_arm64.whl (424.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.13.dev20250908-cp312-cp312-win_amd64.whl (415.9 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.13.dev20250908-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (497.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.13.dev20250908-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (497.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.13.dev20250908-cp312-cp312-macosx_11_0_arm64.whl (424.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.13.dev20250908-cp311-cp311-win_amd64.whl (415.7 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.13.dev20250908-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (499.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.13.dev20250908-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (498.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.13.dev20250908-cp311-cp311-macosx_11_0_arm64.whl (427.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.13.dev20250908-cp310-cp310-win_amd64.whl (414.0 kB view details)

Uploaded CPython 3.10Windows x86-64

grain_nightly-0.2.13.dev20250908-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (498.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.13.dev20250908-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (497.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.13.dev20250908-cp310-cp310-macosx_11_0_arm64.whl (425.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3d59d2b10e99219412bea0868d19416327e75e0a85ef7186c49f65f06294ef29
MD5 10ca53408977b9ec50eb73a3da3d96f7
BLAKE2b-256 5ba1ee8d56c0a36f563cfd278d4003713feb39056fc877ce1783fa219fd66de7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 10a3d449420d4359a25c9609c37aebd9c44e082a510cba8825de802e1be28de4
MD5 06a34453300758b829f83414f0ba4be4
BLAKE2b-256 af59673cde48f7d6e604a1406a2a1a91c655e9503e157570aa41d08f2e4399d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 c527a49988ffca35e6f985b62cb969e852195bb71fda500166228763ff93de67
MD5 7a61a2bcde973b8bbad4071ace0810b6
BLAKE2b-256 10f3299665916d02665f461edc77b7b9b850c29d8a9b541290e5978efe5118a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e09aacc586e422fad159f4f0e6fedd6e93774e499fc5dc09da6dbf3a90de14a
MD5 cc035d3a809036456472f550ea962eff
BLAKE2b-256 1a5b83c85779effc276883a3c504627623b1d896ba8919295f36ac99ef13564b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1803ada26a93f21e28d5f2cb0b08e90d620388244c69722af87a390dee5f59a4
MD5 5b6f176c821362a11dc292db2eb0d2ea
BLAKE2b-256 7855cf3dba22c591e6f95b33c357ee4acc9e92817c04c07cc79010b378ccb6c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 206945f46788db28e05b96ecbe9ffe0476ac6ada99448730e48788b97d041320
MD5 ab0583ee5c3898e64e72ad4140f77523
BLAKE2b-256 02a71eaac9484f135c449d1d45c4178a8c40e973bae7b5a684cc69f8a3818765

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 3f723950b21a20b158b67cd72ceceee5521322d6436433f226670a5c9af7c721
MD5 b6192b2d644c23ed6afc0f1dc5eb5500
BLAKE2b-256 676eccba308012a25d7520e7a9bce713ea6a77a748efa8476b9e1aea1385c0c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d0781ecc24fb8e59393467abe95cb39ff08653bc7cc2e4b8a9c5f47e7defd86
MD5 7994c72c790a7b452431e7361db023eb
BLAKE2b-256 f7aa0fa279cfd611a6ff27daaf833ec2657bffbf46e7f9026ec80b825461292d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 065b92ca24f109b21566c0d1db56bdd291db869a4db71628de7c977c0af8a815
MD5 0ad3e26286b0dacf671b31b40c29556f
BLAKE2b-256 b901abb5cef041d9e330738245e427da0ed6809168963578923f28895aaef874

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1b9d9903042233251c9177724f0ec68cd4145d5becedbb11ffddfacb5105be18
MD5 5085fb7b4e2eb473c28a6ce6eea433cd
BLAKE2b-256 3a52b82265a587c1de40f356108cd9fdcf0d4afd9ba0d526018f19aa1b02b400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 58dc47524a1e09f6dc2cd2199157a3fd175835107e5646b35ae0902fa1644378
MD5 ff7ecb1ea4b3a4e5ed85fd95c6450c50
BLAKE2b-256 1ae1141649c9fadda3fd9afb5924c9492d2ff31385de4f78cd120b00c9fccc5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5be7b5e79d7e1d6d3db7c712e066b76c7a80097887e651394556859b3f380ff1
MD5 5b071b00d9291d464022ff1187647bdc
BLAKE2b-256 621363f65d321be643381888552820ab809d9d2b79c14ab4af3bea3232b45a62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 110b237d763cde701ac1fb4d92cfe8ba8d61b1b10861a79633acb021219362be
MD5 922d58ddf07c159c23fc2e45e7c26cbd
BLAKE2b-256 3114f598e6d93abf058374b0909e585ccfd67c3f166603e3131f05d8bb527315

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8395cbee21cda180ab31d7cf35cd6a87f15fcb1d7668db841c218dd40d0656ac
MD5 8293079d5aba4ec009dccd20c4e89fe7
BLAKE2b-256 e608cf4f1946db6d26c3499e5dadc0448d15eb76b8f65dcc7e49c0685ae38cf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 750648785f4a8ecddfb907fdad71c8a8cb5d3eae24338de04dc4902dc04bcb13
MD5 7c8dbcf99c24d4b9590c8d0c9407aeab
BLAKE2b-256 e438752e34e5cefe531b9785192844e7aba60bbd737ddd746f74caed6291b20b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.13.dev20250908-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 925a4848e2b53f4e757907bd7836eec581181bb7954ba318e553091eca13a519
MD5 097290760df66f82a530c8545836ce50
BLAKE2b-256 aced1a5d5033b417cb95a84ddfa0da0917a4732cdda729857ac5fe4b7fe66e87

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