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 yes
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.16.dev20251215-cp314-cp314-win_amd64.whl (523.8 kB view details)

Uploaded CPython 3.14Windows x86-64

grain_nightly-0.2.16.dev20251215-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (585.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

grain_nightly-0.2.16.dev20251215-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (586.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

grain_nightly-0.2.16.dev20251215-cp314-cp314-macosx_11_0_arm64.whl (530.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20251215-cp313-cp313-win_amd64.whl (515.8 kB view details)

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.16.dev20251215-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (585.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

grain_nightly-0.2.16.dev20251215-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (586.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

grain_nightly-0.2.16.dev20251215-cp313-cp313-macosx_11_0_arm64.whl (530.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20251215-cp312-cp312-win_amd64.whl (515.7 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.16.dev20251215-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (585.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

grain_nightly-0.2.16.dev20251215-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (586.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

grain_nightly-0.2.16.dev20251215-cp312-cp312-macosx_11_0_arm64.whl (529.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20251215-cp311-cp311-win_amd64.whl (515.4 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.16.dev20251215-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (587.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

grain_nightly-0.2.16.dev20251215-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (588.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

grain_nightly-0.2.16.dev20251215-cp311-cp311-macosx_11_0_arm64.whl (531.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c74a9844b6869e1fc9f7fcc8393650eca3a20695d5ef188ec8c74cad8c4747ed
MD5 dcef2fbd7d586f974bf049ef03b0c107
BLAKE2b-256 2a52e768e209f0b1e72fcefa1c3e0f97b22715b6314095b186b9cfdb65baed23

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 18aabc2d8fe238c0e757cf1188bfdf895a44b593c6fdb88feb8c758d6cd6a197
MD5 ddfb60e163f15f64ffd864641583c374
BLAKE2b-256 d2e05d20f68aaa375c7b951593da137d43c39970791bb7dda7efdcdfeeb697cd

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 14055ee5c68b6f998211acf9240916484dec1b5a2d3685a647ec8a5af1da2f4d
MD5 2a8d7b5eb6cf34f5b4c29a2fe7c22500
BLAKE2b-256 1587ade7ad6e05f9b6821754202407285c42790964a90d99783b3d612857e6b7

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4604a1821dc521dc98e6ef426a1eb1a8f7c6f09c2002de48073bad729ef51d14
MD5 9465720bf447d0caeccf6c09a6c5c5ae
BLAKE2b-256 d4c053fc23f9f6a3aaa4bc81d51034c837cf5d4d61934ddd64693831a6852876

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fb297010a18fa28a14ba4dd8ef745d74d10bf74684a2a885ecba885aeab1baac
MD5 4d3528a178f7bd8d2d66e7bebc54fa58
BLAKE2b-256 431717cc138976095d5171f65b2bed4288a245848571e992732049e196fd5021

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 abf226cbd8da5ce6fddeb991517491bd54ffa454933577993c3953c791057f66
MD5 d44f01316879c51475e1c1e6ef15ded3
BLAKE2b-256 c32159cd42b669ae70713b9548c692290963a51a01e4a06d03f23e9cc9b3342c

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ab5f92bb5142056ce56338201cebf87f6157b3dc3ce1e2116963a9c45947813e
MD5 dd4be05837b69f4185c70d76fdce0f2a
BLAKE2b-256 16d3f5b4c3a557fd92b9d877c74eaca9d26061312844c4b07fbe9aba452c3b8d

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de628fccca022ca963f8a58ceb6638476a58c2744f90cf4477dd4a5686e757df
MD5 ffcc6dccc4ec8ee36f3305f27784ad95
BLAKE2b-256 4e67a9a4b55df55d20e0b4209fa7ffe93afcba563908c99467a4909431deb117

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 dd9325add2f265a4e8637e8745e66e425a9d193e200a61de9886ac90b8f86f3c
MD5 127d81fbebc26fc989fd9259b8a37fa0
BLAKE2b-256 0eaad4c592404e8108ed128334d709600a848636ffc4ce96f8ce38808a567f19

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e58657cd8e23a5eb64e701d98c87c8253c298165e64a29f3fec5211a76094ff
MD5 bbf2ddcf3b05d832b3ec62f805d5781c
BLAKE2b-256 7ca318254aaa8d8f754c3d6f80b5ddb70e97dc305095a9a394c62dc712f03041

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7dd83bc6c0339575c2525940679ed525405d555d26e2972d7e994f9ae208e1a5
MD5 9e93150d6db3c11bced5b2fb16188b65
BLAKE2b-256 8ebc9b5a7dfe5cc398458c48f9ffa1d28799967d8ebf394cca92bae3aa36b138

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8efac519695bd4d12447f13e14d0d7071519f61326181d47f5f8e0302bd7a504
MD5 057f88f3900f240725d69bf40f21483d
BLAKE2b-256 620f6072e3c7e5dd8cce3fc17b0eb22c7e4495c73fba2166442238dd24a8e4d6

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c957ff54a7ee86a30e51ff8740409beb14ec8ffdaef8edcd3f8f7c5ebc7d9edc
MD5 1289726f11d07ffa4bdecc360e047d48
BLAKE2b-256 52faab866c5352a6d3d0c94e9fda310d940ff163e963412ffa9ba991ab11264e

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1b0cef11efbc325c53f3cbaf36ad07314ab083471037173caf92f0e400c95d7f
MD5 ab78ad6d64212c7fbd0a5a1a171d7186
BLAKE2b-256 97380d94ad039ef2e6885f2269442b43396b578b814328f044670e39dfa42563

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 48ac1374bbff0ecb0c5f9280422de39fbd8d22289ea257ff043ffdcff702236c
MD5 0ccda6471e56fd7f592d55a4144606f1
BLAKE2b-256 49614462d276dd3a0cb5e9dae367cfa3a8ae0cced69a3b5dc2f5a68d5642989c

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.16.dev20251215-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251215-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af2a221fb6357ae35beea4112052b1dced9f650081b7a3fc882b0ad98911d545
MD5 a263e646d742adacae3545046a574106
BLAKE2b-256 43f0cad45f136a23844cac0b806c0446ed41dd6a84572f08e7f6c18a4cc2620a

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