Skip to main content

Lightweight framework for structuring arbitrary reproducible neural network learning procedures using PyTorch.

Project description

https://codecov.io/gh/kijanac/luz/branch/main/graph/badge.svg https://img.shields.io/badge/code%20style-black-000000.svg

Lightweight framework for structuring arbitrary reproducible neural network learning procedures using PyTorch.

PyTorch code can easily become complex, unwieldy, and difficult to understand as a project develops. Luz aims to provide a common scaffold for PyTorch code in order to minimize boilerplate, maximize readability, and maintain the flexibility of PyTorch itself.

The basis of Luz is the Runner, an abstraction representing batch-wise processing of data over multiple epochs. Runner has predefined hooks to which code can be attached and a State which can be manipulated to define essentially arbitrary behavior. These hooks can be used to compose multiple Runners into a single algorithm, enabling dataset preprocessing, model testing, and other common tasks.

To further reduce boilerplate, the Learner abstraction is introduced as shorthand for the extremely common Preprocess-Train-Validate-Test algorithm. Simply inherit luz.Learner and define a handful of methods to completely customize your learning algorithm.

Two additional abstractions are provided for convenience: Scorers, which score (i.e. evaluate) a Learner according to some predefined procedure, and Tuners, which tune Learner hyperparameters. These abstractions provide a common interface which makes model selection a two-line process.

Getting Started

Installing

From pip:

pip install luz

From conda:

conda install -c conda-forge -c pytorch -c kijana luz

Documentation

See documentation here.

Examples

See example scripts in Examples.

Authors

Ki-Jana Carter

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

See CONTRIBUTING.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

luz-10.3.0.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

luz-10.3.0-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

Details for the file luz-10.3.0.tar.gz.

File metadata

  • Download URL: luz-10.3.0.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.9.7 Linux/5.11.0-43-generic

File hashes

Hashes for luz-10.3.0.tar.gz
Algorithm Hash digest
SHA256 fa6685eb6b736187ffd8280c04307d8d38585041b2029f9ee032f56ea48c69f4
MD5 184a5b22d9c5c4444584ae6251573757
BLAKE2b-256 7b9dd448b46c07e441af221b4784cfe90c7b8959f1e5b79aa3c3be8e5a10c104

See more details on using hashes here.

File details

Details for the file luz-10.3.0-py3-none-any.whl.

File metadata

  • Download URL: luz-10.3.0-py3-none-any.whl
  • Upload date:
  • Size: 26.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.9.7 Linux/5.11.0-43-generic

File hashes

Hashes for luz-10.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d4014d7d12dc212fad53c549c57fb67eb7d659645a4a037702305433de39a26b
MD5 e3a6a95eca8fc0a79d5280966bab89a5
BLAKE2b-256 8636f551278a3c5ae0b82bab7243617be5c06f1beeb7d022787a508b59974bc4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page