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.dev20260112-cp314-cp314-win_amd64.whl (533.6 kB view details)

Uploaded CPython 3.14Windows x86-64

grain_nightly-0.2.16.dev20260112-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (595.7 kB view details)

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

grain_nightly-0.2.16.dev20260112-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (596.3 kB view details)

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

grain_nightly-0.2.16.dev20260112-cp314-cp314-macosx_11_0_arm64.whl (539.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20260112-cp313-cp313-win_amd64.whl (525.6 kB view details)

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.16.dev20260112-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (595.6 kB view details)

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

grain_nightly-0.2.16.dev20260112-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (596.2 kB view details)

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

grain_nightly-0.2.16.dev20260112-cp313-cp313-macosx_11_0_arm64.whl (539.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20260112-cp312-cp312-win_amd64.whl (525.6 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.16.dev20260112-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (595.5 kB view details)

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

grain_nightly-0.2.16.dev20260112-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (596.3 kB view details)

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

grain_nightly-0.2.16.dev20260112-cp312-cp312-macosx_11_0_arm64.whl (539.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20260112-cp311-cp311-win_amd64.whl (525.2 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.16.dev20260112-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (596.9 kB view details)

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

grain_nightly-0.2.16.dev20260112-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (598.0 kB view details)

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

grain_nightly-0.2.16.dev20260112-cp311-cp311-macosx_11_0_arm64.whl (541.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7708e35eb6d849e5fd0e30a822b883a124b4ae4182a6d6f6f088455999dc6c39
MD5 0de815bd355cb0ec50204e6c0cfc6925
BLAKE2b-256 aaa555fef419e43696891f6d7c745aaa33f83c77c5a6668ad0aebd987de4917e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ba944ad08b9a5d961ea4eac1eb40c66b9a101b7589ee3980f3f78bc1f3319eaa
MD5 68eb34e571a56ebe4d8f44ddef2b57d7
BLAKE2b-256 a87b80d6a8ed069daf7233b425d31720ee4b69ffb210f4f10fd42b065820efb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ac457f3a458169410b3ee59a24c48830e921821d16fe1958b4a00fc0ba6fc9e
MD5 f378c7d31bd2b5a539b65d217b804ddd
BLAKE2b-256 a654208e5306bccf3987f54e4f469abf786f4f69049eddcb5f407ca04621c5e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1549019a27ce03dc0c1dd0f9404bd46606fc4708e4768a1cb6c1626a92183db2
MD5 db1fab65cb44670f99646461885abe68
BLAKE2b-256 92f444ac09a6aee3d4dea833bfa2ecc05a674da93d3393f0ff03abe555e9c491

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0b1e1dc1c7facd182d4ca18607554be2c97354ff263ade18fa064a0cabe2c61c
MD5 82d0da7c27b46cd2f2f739c3d2ff8311
BLAKE2b-256 26477bd6d0e21ef66d96140dbd7430ff15ebb38a2b4b140197d41ca71fcc51f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44d4edf208f7c3f9d9c4c1a1e1cdb96c5c4ea5806c29430a546fb5e42e8e3b2d
MD5 20b06e98501d0ac01840497f8efcb717
BLAKE2b-256 59148cbd1faec189d489f9f9680e6c9f9a0dd4ba81087826d3890b0e22c93cf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bd0cc82faeb212a613c05da6bca0697a473d89af84ea989b1f791bbb93ec3326
MD5 65885081616a03f078d8d0de67f3e06f
BLAKE2b-256 0e2f91fe8af0605366eb2afc657db364bb0654bdd66a8560d3c3796169b8f30b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 68ca356facbb327dde319ec5aa5e468677db71e564abde5156c63c207cb89c91
MD5 0ee99e143d99f0b4bf377d61097baedd
BLAKE2b-256 15fee00901c5de82f89f000f97a2d04231bc668d254399cb91cdd05272e028e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b03db816099307390bdd66c42471cd01982b6e1e4eadff778a3a4f8d0f8b0708
MD5 1fbb207f6cb1f18abdad85eea88d86a9
BLAKE2b-256 2ce990facb89245ece63ed954a02d794cdf43af391ab303e1bc83ef215751caf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 084d57ea3b461062ebf4d42496b8f61942cd2667e2e05189a1192fa7e9159f38
MD5 7ad68186ff4f42d84d5cc4e8ae82e912
BLAKE2b-256 543de8abccb43c6e5ffe5f4efd3872d3330c1f06f3abbb5ac86c4aa7897d54f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0dd92faaf2bf31da0e39c637b27df3bbc36ef6109be1664ac28c9c3fdf987df0
MD5 1afc09fe8b61de52de109e6fc6297e6b
BLAKE2b-256 a9295c26ccb57cb91ac053c838a50488213587dedbb8128d30a67ceb851a6a88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 70719eac722417d6eb93e8c46f34f41e9af76bea14dddf347d3fef969530e6c8
MD5 ffe76edcdd731dad4c00a12b272d6343
BLAKE2b-256 7352a61a06fafacedc451aa5a82ef65fbd619ac14273432e0dffda8c1ce124b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0b2670b4b68999334df133527a5a25c58e752027d61a8d7f73b9992151d6654e
MD5 2df93ed9ad7292160eec4592183c1f6b
BLAKE2b-256 4a719775be10a3f23bdf98182e37d6989d119e8ca1b60b13314d7f24e0551454

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f3cbba8d6bea82b3757c84cdca24be4d0bc2260c4eb91efd03ea31b581eaf5a5
MD5 9a11c523810c20743a6125c22cb4fafb
BLAKE2b-256 ebab6f88efc046f519d1abdece5228794219109581d3da06678491819cb85195

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ffdd01aeefc5a1c912bcc7aa6f591af26124b33c3eef6ed614f5eda51719330d
MD5 96c810ac347206e0f1a973599d5dff80
BLAKE2b-256 2db606f487ba5350e17cee51ef22a4997aa693638c64cb7fbf12a0f976d0a37c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20260112-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2feac3a94e0ebd1a0086fb2651325701498aa86a8b46939ba68bfc3b663b5cad
MD5 37628e6ea4fb1f1d53ba1eff725f3da5
BLAKE2b-256 7f5aea93fbbfc29ae3f7dda75d5e876c96ea17fdafbbea51a875cb055e4f3de4

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