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

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.12.dev20250714-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (490.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250714-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (489.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250714-cp313-cp313-macosx_11_0_arm64.whl (406.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250714-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (490.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250714-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (488.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250714-cp312-cp312-macosx_11_0_arm64.whl (406.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250714-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (488.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250714-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (487.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250714-cp311-cp311-macosx_11_0_arm64.whl (405.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.12.dev20250714-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (488.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.12.dev20250714-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (487.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.12.dev20250714-cp310-cp310-macosx_11_0_arm64.whl (405.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6f788bab4d224179068149d5c878a258cce815e67d586ff727818e9586407ec3
MD5 1b8e223b3fdcf70937a6ec81606cbd77
BLAKE2b-256 dd50917169fc703f7b775a5d186928231653c7872a1d006e62fbd69b4ff54492

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 add11e8e5383ae8ad31448c63e127f92103c3ca38d22fc4b213c9fc6b4724c9b
MD5 d455efd0a125126bf34268cf3eb8756f
BLAKE2b-256 90ddc5858294b75a485f3e07e5844687ef0d4fbd5070c1b9a60fbef1a61a77b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b02fce45aa6a80c3f8ff461249c47ffc7347704cb5352f87585038ee3a728801
MD5 c23f54f345d0bc871f1e66e196505061
BLAKE2b-256 340508e2106ada9ee0bb9bb3462c039d6ed438a34a2427ab92e7d28a3df0402b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1e508c6c3a47280ff235c2735b536c8f7479533916e7a8b1da2d55b64e3ceca0
MD5 5b1fdb4d09bb607a20b446c1951655ce
BLAKE2b-256 0a815ad7f50b96ec2bb0a59b68914f8bce9779632a4df8533a0512b15cf90f32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 f9a87831c93c5940b98b1bb5cfede6e66e980de2bdbaabf714070ca3cb81882f
MD5 84cdcdf11d8bf772a5cd8b7980b73953
BLAKE2b-256 7e606adc5539bf26c47c0000c362138bc06ca8dd95702b0090950632ac284a10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab675847102d37a1c94dd9d61e799496359cf3c26360e1ae92b0001572541f25
MD5 30bbadf8fe943c9adb1a0fabecbf95db
BLAKE2b-256 0d6a728e234d00051534af70f8871e3eee5a51bbdb0e434e8e6129af92351909

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 59e3b7d7ada1a99f19ba016f35048450c14aa2c0f77a1de2a15dfe9fe6da2042
MD5 1755a8d1d922a4fc17e1513a9c45fb11
BLAKE2b-256 3261f590bf6d88d8f5aefabbaf928073a49373bcf9151ebb161c0a390ea3b7ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 5ca7e54ea18cc96aeb44e3e1e3c6f1e5ef12811e9947adafd941d6b00bd295f1
MD5 d63e3281b95ceeaaeed174044f279275
BLAKE2b-256 63dce11544552e991bae06d534aadcc7bda7c71d7099520bb6e2286990db8d20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3823ff6ba1844963a2d535064cba9d455c94e1319fcf5cfd9c14a27a32c12657
MD5 8c6532d2f4dbd51d6acd6fb6d00ee189
BLAKE2b-256 5be8046026860bc80be6bf4bc002023e06928e97996cd8b6b7e9fc6f527d71be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7f534f69c17c522e1135706611f72630bcaf06a265b5943d18806e2cff3e67c0
MD5 0c49ab2444ab3500fede20492756eb3c
BLAKE2b-256 4771eeb6c4df3c3690daf05909a7aa45265c91a54c97e0998663cb6e51d88d5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ea76393f2ce10c10b963361d3bca4ebc7b1a857679bf430a516973fb02c48ad0
MD5 90096d42ff231d15bef38deae5480b59
BLAKE2b-256 7dea6d3b755dbc1ee6d67a2c362a9d281ddced03fd3d88191a30a499e9163c84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.12.dev20250714-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 95b2e30453653a2c551a2e13a0e47da23c01ffee7ee3930b58e8f258b2b24216
MD5 f486402706eeee4f65c3713d61bafe61
BLAKE2b-256 89897d1d48898bf4365034eaffd109ad3a68645278ffe3d0a9f0d0e4af2c5e37

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