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

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

Existing users

Grain is used by MaxText, Gemma, kauldron 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.11.dev20250630-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (488.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.11.dev20250630-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (487.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.11.dev20250630-cp313-cp313-macosx_11_0_arm64.whl (404.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.11.dev20250630-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (488.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.11.dev20250630-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (487.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.11.dev20250630-cp312-cp312-macosx_11_0_arm64.whl (404.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.11.dev20250630-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (486.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.11.dev20250630-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (485.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.11.dev20250630-cp311-cp311-macosx_11_0_arm64.whl (403.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.11.dev20250630-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (486.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.11.dev20250630-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (485.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.11.dev20250630-cp310-cp310-macosx_11_0_arm64.whl (403.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3a9f6c4a6319e5bd67a81477ef2e132b37fe82107ab63d5c70a1a8b6b3d18ea5
MD5 889873b09073a9097e88219c72e50067
BLAKE2b-256 8b1b3da5fa1ba01b3faad7385a1cda341588009af3c7bca069711a58c5c82be4

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ede1146318ea71f8e166de6eefcb14ddd96432aa3a515cf1901b542f39992a18
MD5 feef4f391fc0798b62cea083a18ba791
BLAKE2b-256 e98608e64d47edbeb9c9bf5d135aae1ee71b6d6a717b71e521c88ff3720c3251

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 264517e2fac5c4e46365988142a4d55bcbca33bbf72094e798313958bfa69516
MD5 d2d3876c74c3e372b414c5354c40c349
BLAKE2b-256 61a2002f0ffd150627c51cc6a15c64adbfa01fafc93f0590fd8ac9e1d911cffb

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 beeb223f35f27fc749a4005eb6aa31af8f697439a18c2dc4c5308fe882783e46
MD5 0e64039aca327ea67531bbc88ea05299
BLAKE2b-256 e7a07db7872a95d0c9dd9dd7da65d2102c496aaa265782b7429ee2ca11ece6ea

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 1973d6d4c4cd8ad26184e4fb979d4126e2e94c7243bc035bdd6c03bfaeda921d
MD5 81082f8fa2234fccac860287720399fc
BLAKE2b-256 dca333687fe0e5625b5c926cf9bd94bdbeab5d8b34cd0d1b8de4d8a707809466

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7f64cfc2ff3c7b35737da6e88fd4322ca999caa0c1cd1f2994ee61cdc1ae9ec
MD5 c60ecca10a72ffe13074d822d51ee273
BLAKE2b-256 c67ce91bb8697a25b79f65561030393bfa1a3ae6e5fd479f0ba63eaee8806d2b

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e719886cb2ccdd2db5ed2d01540662c9f58bf12143ed8ed8512e57e42878fe5c
MD5 8763f2ded318b3c721bd3cb0a3dc7151
BLAKE2b-256 a29ec5a95c64e3ef86979a46870e8f5e746956d4a8ebc8caa9892e3acc975e46

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 c2b0ec872b680a15ce87251e318771ad7b275a3686da479cef142e1fae3d8cc6
MD5 0adec6e1ccc58258c64fbe429247b00b
BLAKE2b-256 4974386c141bbd48e0de8eedd91179d78244a1c199092eafb0143a5e885a7fb2

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ddb803f0de618b9b2cec6c19038977290e233988694212f26795fd8ee59ca4e
MD5 33ca29038a826aa6d014675a8b70f8e8
BLAKE2b-256 b73d98aca143916d32c8d71e1ce756c1267cdd939bf5a0d224595086cf7c7a0b

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d5d7f60828a0ea6b4a43b6a0800f7d7bbaa5888c3d6e3b20d0ed6b5450f374c0
MD5 5a8f9588690dae53a359af32ac369f04
BLAKE2b-256 42feffcafd63b10d73036119a8f1c87460d2e7e74b5095f6786396d79c3b46b2

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 f9cab4c696a3748a72dc145ac282664b456aa4601d47605462c1278148a6bde3
MD5 685c82f20241b2c39a892d6fed848083
BLAKE2b-256 247b73676fd5dc7e3fef43e23167d941be24c7590beaa091103fc9f175f9b3c7

See more details on using hashes here.

File details

Details for the file grain_nightly-0.2.11.dev20250630-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grain_nightly-0.2.11.dev20250630-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 619a37a06e94b11f12527ae8a6841e5ceacbfd7a331e96626792eb729cd90986
MD5 32edd4f62c6f17a07ca7aab9c71700d2
BLAKE2b-256 1125de4f50418d017f39237289f3b8eb7dfdc8291abe26c4b34bd955c40099bd

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