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.12.dev20250811-cp313-cp313-win_amd64.whl (406.3 kB view details)

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.12.dev20250811-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (497.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250811-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (496.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250811-cp313-cp313-macosx_11_0_arm64.whl (416.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250811-cp312-cp312-win_amd64.whl (406.1 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.12.dev20250811-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (497.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250811-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (496.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250811-cp312-cp312-macosx_11_0_arm64.whl (416.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250811-cp311-cp311-win_amd64.whl (406.0 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.12.dev20250811-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (499.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250811-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (497.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250811-cp311-cp311-macosx_11_0_arm64.whl (418.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250811-cp310-cp310-win_amd64.whl (404.4 kB view details)

Uploaded CPython 3.10Windows x86-64

grain_nightly-0.2.12.dev20250811-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (497.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250811-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (496.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250811-cp310-cp310-macosx_11_0_arm64.whl (417.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e959bf32e691bf9e3b4f0e9384a74c1f5fd9572d9101b18e0fc0d78ea7210a22
MD5 c257d44c235856379739b5440bec392c
BLAKE2b-256 94b1e3b0d8f2b1d16e89a6038866c9b87ce238dc650d7033ca8d3aa68e869964

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1cf4d9152412f0d8d06b76d02cc3e2c55289eb36b52462aa9cdb97a18cb40408
MD5 ef064ababccc70010ce5b3ef7218a650
BLAKE2b-256 7307b39df1fa656341d6308a82611a5927469aca908dd65b665b8c972db58ccb

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a21b1c9235ccaf27e1fdfcdc6f0a6bb77e7d55bb682994d1d361105e32117be7
MD5 e55b5e6d780b57748e6aaf4b92ad3ec5
BLAKE2b-256 4a0e53589ccef294048a320ccba18c847d916c58ea1916817f77ad1bcacd6734

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 76b741048de6860d99aa715246c5ea48053e3b95d2bee2c56f9870063ac7b98a
MD5 d475530eb219bf2ebcfccb7e929cca48
BLAKE2b-256 3c11d47eef36e6ce4a92b91bee5e8a0f52ea3e6f7762b24048230637c17d6177

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0948b1e945a46993946158bb287577e1bdb8c4008f32872c2546024807ccdb6d
MD5 c99811afe1a1cb9c46ef0a8b94c2f781
BLAKE2b-256 c7a40364a222934a29fc9bf7c58da8fae5c5fcf87601f031c9071a941f65cf47

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0cca1e6c9a148d68c7760c2cc14291f5185675e56160db21045786f897e23b39
MD5 cb76500e85d86529eee71fbde19c3e49
BLAKE2b-256 915a8e372419135c4629e591605a0ba9caa19dbde5e68ee7bdf3fe523a8affa8

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 77c86da5cf876cdc9f3283bdf82245d52c4640c3823f4a07749e92f7cac043a7
MD5 8d275b4c1b3715e20c58220010f1e23b
BLAKE2b-256 81a423456c68466384494f03c4fb80dbb5719a1cf11a7e548ce430d5131054c6

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73bc4548ddd05dcb1bcc523283ac6ac17785d24fb5bbcf2b84a2c6889c051d63
MD5 86b32e436db7112c1a3b5d98acc51c0b
BLAKE2b-256 2d7e0b12efcb0c94a5407e7e4ba3062bb7f6290ae57018157ced0b100958b499

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d42a431a21417a6ccb738d1c1e5b8189307d4633fccbd75193eae47bc297c3e9
MD5 3f8a911c2449a07ee5bfa9b864ad1c4f
BLAKE2b-256 4acd6644fa4d24090151c01a82eab11b859b771b9f25098332734464b7546ab7

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 32c769cb7977908a7df966a9312b45bde5cae30cf65c811d5afb2ee373596770
MD5 8bbb22aa74837470497ca04d107226c8
BLAKE2b-256 9b2e58afa690f4c62ddd51f5241d69eadf5398dda7f08a346be4a4b4ced62555

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 000ae0013c90aa5a8a3dff6b91e0a3790f4cad0009168f5410a3dfef84518a60
MD5 72cadf23e457ac17138799eb7f1819e8
BLAKE2b-256 12ce2c22092e3094095b123d97de6f003affa6889bdaa84fb5db847928d2fee3

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 045b4dca8cd0d3af6b9be81f730c058c76ca33217fc1b27fbfd4532b2a775670
MD5 7e9cd613094bfa6fab5d5aae9dbe1e7e
BLAKE2b-256 cbf3b067cfc85cb30104c56770997ac9a185eb4fbfdce407c3237256bcb2651c

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9072831789e9bfca018d77e484e2ab104706e850500ce07686c86457d415f156
MD5 2319294bc731afa25388efbc99b645a8
BLAKE2b-256 3e6548b0c5d7cf116a96c7192e04aa76e722f88b1139ac71632e495a640d5dd9

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8a020b2da3e55ed7c345bcfb26bfedcf76a703d216f6ac951d92aaedde6c4e47
MD5 501a3568dd8ffad4bea44fffdf2fcce3
BLAKE2b-256 081c6bc0d8838ba83697a170e802d1df2508f68bf5e68dfd6b8d47b78ecc50f4

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 bde037b02a73b3a9af5bf7ce1fea6b94d82039e5bf3ca74e51f32492b0193a22
MD5 4b0f1978d67f309763b854ab94ff1908
BLAKE2b-256 c9f326720eae0c3841961b770bf967bf06a9d02f4bbb1a882ea0593b3e0d349d

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.12.dev20250811-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250811-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e80f9b65e266a231d39b38c1e9483c7cd84a163787750bc4d5bc3baa21886169
MD5 f846fac99a1e1db241e2403f370afada
BLAKE2b-256 0fdcce2d4e8004638b4367f3acfdda09442ea73500e8d0de1f80014162087415

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