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.dev20251027-cp313-cp313-win_amd64.whl (431.7 kB view details)

Uploaded CPython 3.13Windows x86-64

grain_nightly-0.2.14.dev20251027-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (513.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.14.dev20251027-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (513.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.14.dev20251027-cp313-cp313-macosx_11_0_arm64.whl (440.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

grain_nightly-0.2.14.dev20251027-cp312-cp312-win_amd64.whl (431.6 kB view details)

Uploaded CPython 3.12Windows x86-64

grain_nightly-0.2.14.dev20251027-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (513.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.14.dev20251027-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (513.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.14.dev20251027-cp312-cp312-macosx_11_0_arm64.whl (440.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grain_nightly-0.2.14.dev20251027-cp311-cp311-win_amd64.whl (431.4 kB view details)

Uploaded CPython 3.11Windows x86-64

grain_nightly-0.2.14.dev20251027-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (514.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.14.dev20251027-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (514.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.14.dev20251027-cp311-cp311-macosx_11_0_arm64.whl (442.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

grain_nightly-0.2.14.dev20251027-cp310-cp310-win_amd64.whl (429.7 kB view details)

Uploaded CPython 3.10Windows x86-64

grain_nightly-0.2.14.dev20251027-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (513.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grain_nightly-0.2.14.dev20251027-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (513.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grain_nightly-0.2.14.dev20251027-cp310-cp310-macosx_11_0_arm64.whl (441.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 72096d60450da94066b66880e1cbac046c79242926cf83d8209e9762435d7106
MD5 b0729af757fb3c8f6e3332d9aa8770c5
BLAKE2b-256 d82d3014caccacb3a344ba1f4044dc838c57c0f8aaa9e8417887e481a9bd96e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c31d7e9658010a8af5e14e97d27a0e709356ab1782cd8a5b245a282e1c003404
MD5 bd698c51aa917735853f3394c2c69c58
BLAKE2b-256 ac8b2372cac8f40d2feece3234836b66e3822e63684d36e3838869d1cfcacb89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 39d5c93c759c9e90cb96df08b56579dc87016dacbe5e62a1a68ab9bfee10daa2
MD5 4cfd30fece5d3b0ab0b52dd2b96e3196
BLAKE2b-256 c2da40041535457641ef29cd623ae93c58bea6f5ed3f657a4bfe449fe58cb123

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4da119aee80502ee8fd90544089479a27b1e789fb3bb513a87f652a075a8be69
MD5 0a77a68acd3f06d837c2e574870d6374
BLAKE2b-256 e806743c6621292141b0f73cd6f18975a29a86a114a9a538b93889b357ee65a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7845b51f0699d8275b47c75759fe2b2692eb7e27afdb1a54622be9ec7b338c12
MD5 0f548cecf99fd81773215b628b4e1ae6
BLAKE2b-256 c62ceb53c61b894c9ccdb6b681a0e7622a1403826913b7d8d91d705e49963747

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a08675d11e1aa4a07c3ed03e323709bea8e008e4f991192e10a16a57b8ae65a8
MD5 d3ac3647df431197308c9f222a63bf7a
BLAKE2b-256 94538ebd4256da8b2151f483cc0bfda1c40201d45c88ecb8c4b2973c79306227

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 3f7d4c57038fc31580fc3a1c98f3c960f1a9a27316b94ec526d29a171394c690
MD5 59c56ccd988c07a6a14af62c24ee5f0e
BLAKE2b-256 40a0c973f3f04e2ec862ae4df42ae8154e2e1c4983b88428360bd80255fb5a4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25710673de55d99fc1bff4fc8457d2abad2815be18dbeab89614e67a3a3e41f2
MD5 792ba2194ff2ebea17100526e96e7ade
BLAKE2b-256 e5a54c69d62f2ae23a205f0320ee5b5e4a3381e1871556c524cab5b7a81c3bb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e7469e559b6a52890cb5d69069fd9af9ae5d8c28dab2d7ede675acef0a5489f6
MD5 a4be3e7e4874ab40d85f8854a676bdc8
BLAKE2b-256 2b744526c2b406e81daf119de0143de9b8ab2d84fe4d9ee67ad347ed224f3035

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b65be44bc1f62e42ed8b876a48b3302acd430059c369004779714f839868541b
MD5 65b6b16e97c56e5507ea036fab50a65e
BLAKE2b-256 035968426fba199ab7a40fb788e3f111f985b7617c453a27a73091cdc7cdc045

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 8f290fc387719737047941423c6c45dbad7f5849c0bd7c9b09989f7efcf0b10f
MD5 3ddde02b6fd8bc9971262e2ef887e40b
BLAKE2b-256 20d3daa6e9bd024222b2017526edf7619c46751b822ae5dc5da6407ca3728e27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c070ab4c863b51d62fee625c962cc7dac51eb077080c8f0283e56af2bc02731
MD5 24680c1dbba6e6ebd61a274efaa7bcb5
BLAKE2b-256 ba1e6d1c03c387608517dd0e1c831ab9989b51a7df00b6efbecc9ad720c40c1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c0f14b58e6eb2b3cb6598698928ddfa7716b57f3671b52abf04833ac438672fc
MD5 7acd71b83f05944c64ffc12e357a54cc
BLAKE2b-256 3fe8b0e83832cabdf9880646a7fe65c85f44fe7a05ac3ea0a1e3cb1cc8e3df0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6eba4e9080599cb18553f4ca0f115cf098ae5ccc1371e3cb8839099c18152ba0
MD5 51704c04dc41d588538678045bc332c2
BLAKE2b-256 5756ad9168f399eef9e02ac6684f13f895becfadfaf121decdce237d25218edb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 6334f3dca4562b3ea970eedec3fc2f04ecaa4c8471cf27d1d25c88203233fcfd
MD5 4d9346ffc2358bcf42ff20569d5689a7
BLAKE2b-256 0cd510fdd3a31118ee3cdbb2491b540f338fc59532c6f78df63929db8904308d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grain_nightly-0.2.14.dev20251027-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8df88106a9d01883f61fbc25fd202e821a7ff828864e86e5635faa8ced6e9b2
MD5 11344cbc91bf6124996067a56f337364
BLAKE2b-256 afa7951b94d78696ee42d08bcd33c592b2934cee9f024a29a691648a7fc88028

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