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

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.12.dev20250818-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (498.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250818-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (497.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250818-cp313-cp313-macosx_11_0_arm64.whl (417.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250818-cp312-cp312-win_amd64.whl (407.2 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.12.dev20250818-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (498.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250818-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (497.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250818-cp312-cp312-macosx_11_0_arm64.whl (417.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250818-cp311-cp311-win_amd64.whl (407.1 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.12.dev20250818-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (500.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250818-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (498.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250818-cp311-cp311-macosx_11_0_arm64.whl (419.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250818-cp310-cp310-win_amd64.whl (405.4 kB view details)

Uploaded CPython 3.10Windows x86-64

grain_nightly-0.2.12.dev20250818-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (498.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250818-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (497.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250818-cp310-cp310-macosx_11_0_arm64.whl (418.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6f1f2217d9dc24d664ce9a12fc9dfde939c0d07a9220e049f6932427d29e0875
MD5 686aaadc55b080bcb795d86ec22432ee
BLAKE2b-256 5fbff95322cfa61f627f5563a0f3aa048313aa149744eec6a3c1d49f471f5d54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3089560685de3ae12418ff046a8d86225fc0c1bdd7760147d462c4255a48718d
MD5 475cf04d40d1a32858bbd5372c877544
BLAKE2b-256 be9cbcf990d1129e96991358b80f92adef595428b5eaa034b3a2f5439c702f74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 96108d88fabf49358f19a9308081c99a372b399b5c4970ab43f1b488c1191a56
MD5 db0138dc0b0d395f29f2b8844010abfb
BLAKE2b-256 7757db2819cc56a9fee3f8b67b12ef8f5dc4b333fb4b3ed551e4cfb1ebf81648

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e00150dfeeb07439c4461748badb2de9aee7e4febfef49b24d36e0084a499dd
MD5 d8e8b9abe6746beb712e4b1b848b06be
BLAKE2b-256 41505d8603c7810699d19c75a6dfd9dfcea58ed2e633482cf2e4a549c8b66a01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 79025716c318b51c9bec5e42778c3003e0fe2bdefec678c6a0c041b2eb16b338
MD5 db2b03f24a071c4e210c614b5e50617d
BLAKE2b-256 570728383b125ed9e3c96eade879455e074d034dbbedcd44a7dde44157999197

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 64f0f0d54979fcf6d812f88ff04264e4b540061137a7ef1586f93b0e0f15ff29
MD5 aa235c98de7f76cb42bdbbc8240e11c5
BLAKE2b-256 a0e6f88897612ca97901abe881d58afde4c2ca98533d1d3b6d9fcf300eaad6c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 cb00480a9127104ec4c1bcadd43c6f78212fccbf0202c5b2611ca3222789d70e
MD5 80cd405d987d41533a83ceb5d4a1ccc7
BLAKE2b-256 f148707ecc96642d584faafdacf4b8e25c81a281bdf20b42c0e7c4b8029157d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30f283a018744175f724578030a15aa55f7b51d0304d3a55e802068a656a5034
MD5 a649a5a3acae682c1d49e353d063f472
BLAKE2b-256 1037252055332141dc9e6c3ea1f77c905ce9393e5ce68528124bdad4bb9ef105

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cd713fd3dbd9df3e2e895368dc49149bd05e44db25a2800aa7351145d3ed6cd1
MD5 83f730fb47a8d9a6f7d5eac2c99884b0
BLAKE2b-256 07d39216cb62cac67d8a132cedf5b705c9e6100ecd69ebb883ef0f047365a581

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 04b06700a08d9754137c135286b87bfb3980dca9a8093caba7c8c425e4b7cd2a
MD5 043e78f0366631877e903055d628edc8
BLAKE2b-256 cc316e3a8c3729c70dd108e28b13c0a74e817d407bbab165003fe8cf4b04b87f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 3a2f7f688ab0710db34982ddfc0046b5d7a12cd2e53ab7ee10f280b4970a60d1
MD5 6038bf936669a33e3aa340fbd3000a87
BLAKE2b-256 656969992ac016ce38f7c5d6b867c770413f2e765c21b06934ed614548c00472

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41ab7e54fe20979e1b6035a9e15aed91874e9a983e64da9cd0ce1c9248cb8b19
MD5 e67d751108504f7ecec830c1c26c653c
BLAKE2b-256 c91e183b13c35650206e64abf2be845210cc767cc572c2ea5a80f07ffed159fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bfbc999344ee55396751eb510320bea971f409713d276f978bd10df7dc512c63
MD5 2194bea2e0dc1364682b15c1fc2f2d67
BLAKE2b-256 9848910515749f344568a40fddcc57770ca43dd222d1b9f4302ed5296349b5f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 aec789cc13f391ab785fef642ebbfda7fc80cbf01572ae10c6314e49d32d951f
MD5 4da40ec621fbf3dbe38dc06edfddcc07
BLAKE2b-256 2c5def062d2748303b98082986fe75e01777ff34a05dc5e0ea063abfec4ecb6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 48e45620a1afadb5ed9a4a8a6b01d3ff1bf91b0aa414b54977a35a67f5edab9c
MD5 7ba39bcab40abde5fe99700bcaf4bbf3
BLAKE2b-256 18f16b87bc7c79a295c6503b2e30b3db6a1a55c054ff38c0bf82e9aa6b5183ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250818-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7967091ac3a249060cb115489a7d75966a7a374488b688a8a37ef2fc94bf14e
MD5 edb8c39a03b4a878ae1b9aab33855fbc
BLAKE2b-256 5500619a692e25a18703a7fdd4c84a3beda2b011280c75c254f8712db0b6020e

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