A tiny Catalyst-like experiment runner framework on top of micrograd.
Project description
Kittylyst
A tiny Catalyst-like experiment runner framework on top of micrograd.
Implements Experiment, Runner and Callback Catalyst-core abstractions
and has extra PyTorch-like micrograd modules -
MicroLoader, MicroCriterion, MicroOptimizer and MicroScheduler.
Every module is tiny, with about 100 lines of code (even this readme).
However, this is enough to make Kittylyst easily extendable
for any number of data sources and support multi-stage experiments,
as the demo notebook shows.
Potentially useful for educational purposes.
Installation
pip install kittylyst
Example usage
from micrograd.nn import MLP
import kittylyst as kt
loaders = {"train": kt.MicroLoader(...), "valid": kt.MicroLoader(...)}
model = MLP(2, [16, 16, 1])
criterion = kt.MicroCriterion()
optimizer = kt.MicroOptimizer(model)
scheduler = kt.MicroScheduler(optimizer, num_epochs=10)
experiment = kt.Experiment(
model=model,
criterion=criterion,
optimizer=optimizer,
scheduler=scheduler,
loaders=loaders,
num_epochs=10,
callbacks=[
kt.CriterionCallback(),
kt.AccuracyCallback(),
kt.OptimizerCallback(),
kt.SchedulerCallback(),
kt.LoggerCallback(),
],
verbose=True,
)
kt.SupervisedRunner().run_experiment(experiment)
Running an experiment
The notebook demo.ipynb provides a full demo of
running an Experiment with SupervisedRunner
for binary classification task.
This is achieved by training MLP from micrograd module
with a simple svm "max-margin" binary classification loss (MicroCriterion)
and SGD (MicroOptimizer) with learning rate decay (MicroScheduler).
As shown in the notebook, using a 2-layer neural net with two 16-node hidden layers we achieve the following decision boundary on the moon dataset:
Running codestyle
To run the codestyle check you will have to install catalyst-codestyle. Then simply:
catalyst-make-codestyle
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kittylyst-0.1.0.tar.gz.
File metadata
- Download URL: kittylyst-0.1.0.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.4.0.post20200518 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bb978ff84c032b287fc1f9a825a9ad47cf1ac1a8100513270d85122537b3120
|
|
| MD5 |
7fd584efe7eef33516ee3c71e8002db2
|
|
| BLAKE2b-256 |
76d797327091d5aad8afd15cef901adcc6fe9dbf16b32b859a39e0169ab54928
|
File details
Details for the file kittylyst-0.1.0-py2.py3-none-any.whl.
File metadata
- Download URL: kittylyst-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.4.0.post20200518 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdf1230fd2a3e5a02c4cc60acb0a88a3a80feb5bf18e532da221fc87e3b5b5cb
|
|
| MD5 |
71026c87b5bf884d14d245e68a6a0d46
|
|
| BLAKE2b-256 |
81977723e798e4147333aa9184fa764ac9923e4830b78e5430856d7573ca3534
|