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

Uploaded CPython 3.14Windows x86-64

grain_nightly-0.2.16.dev20251208-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (583.5 kB view details)

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

grain_nightly-0.2.16.dev20251208-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (584.1 kB view details)

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

grain_nightly-0.2.16.dev20251208-cp314-cp314-macosx_11_0_arm64.whl (527.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20251208-cp313-cp313-win_amd64.whl (513.4 kB view details)

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.16.dev20251208-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (583.5 kB view details)

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

grain_nightly-0.2.16.dev20251208-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (584.1 kB view details)

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

grain_nightly-0.2.16.dev20251208-cp313-cp313-macosx_11_0_arm64.whl (527.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20251208-cp312-cp312-win_amd64.whl (513.3 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.16.dev20251208-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (583.4 kB view details)

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

grain_nightly-0.2.16.dev20251208-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (584.2 kB view details)

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

grain_nightly-0.2.16.dev20251208-cp312-cp312-macosx_11_0_arm64.whl (527.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.16.dev20251208-cp311-cp311-win_amd64.whl (513.0 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.16.dev20251208-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (584.8 kB view details)

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

grain_nightly-0.2.16.dev20251208-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (585.8 kB view details)

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

grain_nightly-0.2.16.dev20251208-cp311-cp311-macosx_11_0_arm64.whl (529.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ce1bc8b02ec49d47d18f90e0595a3f00431ae600e386f851f45a9726eb989607
MD5 54941640d061b4202c86e75178e9448c
BLAKE2b-256 ddcdda8623128161d74efaeeeb82a314c35dbbf1503f8dd10ef412ff048462e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 48d6dd714c66dffa38b27650595123dbe6816f550a5998581f72dea7b8b60c6c
MD5 97b7100fd66d2ddb7b0e713fbb74dcf6
BLAKE2b-256 5343a35eb9b24d1931cc20bff6ddc035f716c0c7a8241489075713108f165e77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42442a5e0a233798940e36743d644053220d42de13fdbb6344397d23b08a28f7
MD5 95fab8ed591bdb16bc494b6b1699b96a
BLAKE2b-256 6f0b839c40db45572a3cf258d50415018c28c6cdac315909c0c414481a0b7873

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5493081a5d07c9533d2f155725c8b483e6ee2b57e35d9c11c05f7d8aa0c77eee
MD5 44c063fb006b4498cdaba67a99a6c5d6
BLAKE2b-256 cf73b5253c587504a6ab1461de7352250a9c3f71ecf0b6a641b0757fe8712fc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3aba9147da7702e31f2185ddf8ae743cda41ac560c3a1b660b23a007d3b77efa
MD5 3da0961d098798b896ea247485a9ff2c
BLAKE2b-256 2c2a2a7764939c1adc760cacb7cda341dcdd6d450027f274480b9bb78e27f023

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ac3a3c04eafe35a46e9dc443b23252dc4cc3a7c4d8145af698fe35d8b98f429
MD5 5c9a29f06be709effc39e3aab475d23a
BLAKE2b-256 2b118da3c5ccae4d490794e3e7a23c8bc6d8ec15f7622f34a3a9f2e9f2d6844b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bfef4e26a89259faa53d3f12dd7f8576b8107831c3d9c64d48cec3153b29f7d0
MD5 2ac8d08fd8bcab807ad422faba6fe67d
BLAKE2b-256 a2f155b16699de6f42dfa56dce806916eabada4712c2c47073b7221a6a8224dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40ddde8a9f4c718100ab28c59b1f133914840b4f68111531dc32de725dff42b4
MD5 6a578019136e0f7ccceb2ca48999ba93
BLAKE2b-256 301a6b0d125f992d578f1461ff0b7d89b276743cc69a6a7f36adb8b7f9de9fff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f8f347d1f190a5c6ba5ff9a48d9c49064c46b00d46cbabd1a4090f0b9c4d67c3
MD5 603ae0c0a5cb48d2479bf0a29aa6a374
BLAKE2b-256 a53711902dd98ee92e1275a9cc19d1c7f09df938fe34bb6dfb37cb3b51e4b950

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8231a89b41cebfd30b4e640a2caa16e96e7db90095663ac6b257ed8abf09a99
MD5 8274b42a4a408864aa0572ec4fdce852
BLAKE2b-256 41fcbac58dcbc0fbbe92a961e867dc56bf383926c1cf6f72dd5c731a9a52e739

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c90b46401f1f281c2991bc1b9a4f88d686291664cc1d10e6c889bcca6d2356cd
MD5 30433ea3c4eaaa1382cf5af8fc726017
BLAKE2b-256 b454c8e8e0ebf3acbf5866e91658556b0298e0f172de8e184903dcf6e2e44c60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e4903daf09d7570e3870b70060e3587414349474445dcdc84e2d6de6e9ba896
MD5 5c5965571f99320bff4c2ad098ad8d93
BLAKE2b-256 e84a944b0c05d138c266a012fcc8cf87fc0b27ad253e8c8470207d8c24e8235a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8021c51bf7c10b96ef66a90934f40d0fe39c34190f6d3696ac81f8549c6f5d22
MD5 04187ad674785f38e7048f69a52161f7
BLAKE2b-256 1081b7c5b59da8fafad1b27b12fbbf9880c6ca7d601ff2a1a88614c455682395

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62e6aaf6c65bd776ea74f2fd09e11060decd64170d310ffea9e1be989605c513
MD5 3c5063111dc3adc9819d79fd7cbec68a
BLAKE2b-256 1d4b3c68072547761bfe2f18c42586de0cc077f2ef0edd7a5497ffb2ba89fefb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 96aee659a9f3cdf923d3724f66bb548bc0689a87e1596f2702948203f7491c08
MD5 a329ecb2c001aeb6945b0dbe5661d580
BLAKE2b-256 0db6515327d9761e6317105f4693e54290f6c9bedb09d3e2d6a7ad00773298c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.16.dev20251208-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9f501a62ded72a5d3f0009f4ee6d0f1ddf82bf5c74f2f18e0e424cfd56060cb
MD5 810e5eedf3a68248d4b88f325e8fd2c7
BLAKE2b-256 f1371726deaa278d7c2199eea46411d7ec0f37fd67603e1770ac4e1b533d8a5b

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