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.14.dev20251020-cp313-cp313-win_amd64.whl (429.2 kB view details)

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.14.dev20251020-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (511.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.14.dev20251020-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (510.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.14.dev20251020-cp313-cp313-macosx_11_0_arm64.whl (437.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.14.dev20251020-cp312-cp312-win_amd64.whl (429.1 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.14.dev20251020-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (511.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.14.dev20251020-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (510.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.14.dev20251020-cp312-cp312-macosx_11_0_arm64.whl (437.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.14.dev20251020-cp311-cp311-win_amd64.whl (428.9 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.14.dev20251020-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (512.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.14.dev20251020-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (511.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.14.dev20251020-cp311-cp311-macosx_11_0_arm64.whl (440.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.14.dev20251020-cp310-cp310-win_amd64.whl (427.2 kB view details)

Uploaded CPython 3.10Windows x86-64

grain_nightly-0.2.14.dev20251020-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (511.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.14.dev20251020-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (510.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.14.dev20251020-cp310-cp310-macosx_11_0_arm64.whl (438.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 aa1a0597689ce91649ce6388685e502ada7afc2174a225ceb3663beb9ef6d5ad
MD5 ace6531c969539f5b1cf55284c9c3c1d
BLAKE2b-256 66c185c70974681a376bd6ecd9ce2166639f30aa80663af8f8c49b66cc646208

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e4e9ffcb6c99bd78cb49aaa025b019c99d925ed644499bae1bfc17219fa72513
MD5 de608398b450461108dec5563dcb3f0d
BLAKE2b-256 e6bde438c1f68a6e84fde3336acf82b45f8cf090885cda73672dfc67ec8c039c

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a8886d4df656afd03a9bcd04263deadbdb2ff7d8b3b12bef13673054f2126a96
MD5 65659f4e24ca9788614ab221e6579ed1
BLAKE2b-256 dc8d9399c3af8f7d72eacaf58aba64ca0f57b1322fd65e6353151b7c6a9155e6

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e459e8b5986790d3e0d62e01d141be6c13a6d932da34129b1d5865fa2b218980
MD5 403b139319da8cad54be606a06f187a4
BLAKE2b-256 7b35ffbea175f377e1ab73960d00b6c0891ac5f01a1bc39d839bb97f116fc451

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1d6706e7569134b88ccbcb243affaf7cdc0f78024d546d24a35e00cf0a1ce5a4
MD5 2dd272343eb4a68247c4602057ff220f
BLAKE2b-256 0fc5522a7e1e192e3717331e62486e4bd6e39118dba6607846852b5b8ceed4d5

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2348d6a75c47b755f3a47457ad403eef66a7d217880495ed66d5c21466634cc7
MD5 d1f0640e625c5c44434cff5422ca9b0b
BLAKE2b-256 1370465b0d09f1a105062aa93cfc3480514a7fefadb529c273202430cbc37703

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 17ae3c74d39b990a73e2c7831a7a8e0b9b0fb082c676acd829051e83e6a9b2fc
MD5 1501df0a4772f99dd6430e3902794185
BLAKE2b-256 8f493e9f4e977fee9a427b511720183676cb462d81da99075e1d6f459a1a5fdc

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b2f0af299d4ec0c570272e5f0c71b64cf8feaeb0f1c5fafe92c5bb6b7209686
MD5 bac2551cfc2f3873b375ce9fef272b96
BLAKE2b-256 f1a900287dddd0936a4c9360808c78e8e793c838be056c209763e1ddd89bc20b

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5aa2e38bc20b2bc9b70b2cd325a0af1f516a357c2fd88b2f4e1cb22b4c67840e
MD5 1eaf246e9f2be80819c586bcb5454594
BLAKE2b-256 77c1592f5ce4bccd1df1703734c750ddcefdea06b09654451d0f07eae29f304d

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 43983b74aa9b0f62cb927995031551396fe9e2b22d32a30eebd51f7e3255d78c
MD5 283a74ee39878e6e1e77fcb5464fa4b5
BLAKE2b-256 482b67fecc0a43fdb66f2e4598d88ed0259a7c848d7a786dd4d13493352fb5c7

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ccdb4d0067a38060cd546bb19c57f2aef79a2ab68b47e78e8d8d6701ce1ca4e1
MD5 f556cd5224742e274f463db02b5fa52c
BLAKE2b-256 0e41179b2bbfbdb9f889ce4e75b3b292e6d2b5ada8a7d446d639aef92830a722

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f8216ee0e8be1560ca6399d2637de9008fe6ad06edd392106d2e0c9227ec5ec7
MD5 a3aa83bbf49f36e5b2332888b208823d
BLAKE2b-256 1f22cd12aac01c8c3603639a6b0d35d9cde175ac627a4398a99511f96ba2be04

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e9ab1a0226e4da6f8b21c03b7aa80dba8534378c69a56c38f6f32122e490d263
MD5 d2d7ac5304f938cc3345549b53478493
BLAKE2b-256 906a4209a19262e404b9117f96de45b3091764a49478de0ab6c96b3971817028

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3964d531120c91ac8bc42481170038dfe3a6fb0af950fd1650bfcf0d5578b02f
MD5 170b4d56f77c7f9e954da3f6cd3c64a8
BLAKE2b-256 a9a52eec2951cec4d5e283988f2abfcbdc4ed201d97651cf3416825cbf5e80e7

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 46f95ffa6180715d62ca3edae5fd3ef15d772d8fffec69546581da97fae04bd8
MD5 361b46c530308bc7a40f9ea2a48f124b
BLAKE2b-256 1bb43e6b989a9f374e73b55e162b2890ad8f857e854509a90495cb01afac48a6

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.14.dev20251020-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251020-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2226e21af0a49e90491dfebfab55b25c95ca1127e445044c26be4dfa93060246
MD5 910639df01ae61af9f56945b3261fc76
BLAKE2b-256 d4cedf3955e4f348b09bfd850e54e23bf8e7c549759975823348c569577526f0

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