Nimrod
Description
This is a repo with minimal tooling, modules, models and recipes to get easily get started with deep learning training and experimentation with an emphasis on speech, audio and language modeling.
Install
you need python <3.12
Install using Pip
Install package:
pip install slg-nimrod
Install espeak for LM:
brew install espeak #macos
Install Spacy english model
python -m spacy download en_core_web_sm
Usage
Download test data on which to run example recipes:
# if not already installed on your system
git lfs install
# update changes
git lfs fetch --all
# copy the actual data
git lfs checkout
# or just
git lfs pull # combing both steps above into one (like usual git pull)
Check recipes in recipes/ folder. E.g. for a simple digit recognizer
on MNIST:
git clone https://github.com/slegroux/nimrod.git
cd nimrod/recipes/images/mnist
python train.py datamodule.num_workers=8 trainer.max_epochs=20 trainer.accelerator='mps' loggers='tensorboard'
head conf/train.yaml
All the parameters of the experiment are editable and read from a .yaml file which details:
- data and logging directory paths
- data module with data source path and batching parameters
- model architecture
- trainer with hardware acceleration and number of epochs
- callbacks for early stopping and automatic logging to Wandb
Docker
You might want to use docker containers for reproductible development environment or run your project in the cloud
make container
docker pull slegroux/nimrod
docker run -it --rm -p 8888:8888 slegroux/nimrod /bin/bash
You can also use docker-compose to define services and volumes
cd .devcontainer
docker-compose up
docker-compose down
Develop
pip install -e .
Hyperparameter tuning
to compare training results on different model parameters:
cd nimrod/recipes/images/mnist
python train.py --multirun model.n_h=16,64,256 loggers='tensorboard' trainer.max_epochs=5
Server
st webapp
Run a simple digit recognizer webapp with GUI
cd server
./run_st_app.sh
Authors
2023 Sylvain Le Groux sylvain.legroux@gmail.com
Metadata
Release files for slg-nimrod 0.0.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| slg_nimrod-0.0.11.tar.gz | 65.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| slg_nimrod-0.0.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 147.7 kB
Release files / slg_nimrod-0.0.11.tar.gz
| Download URL | slg_nimrod-0.0.11.tar.gz |
|---|---|
| Size | 65.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a014813ce14ca7324ca900ec4b2507089a5b590820d1c93b86385ad4c8e0f0a7
|
|
BLAKE2b-256 checksum How to use checksums |
95d569e38a67f0e744ab2edf642ad7c339cf31db73f52a0c13315225c3e4b07d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.6
|
Release files / slg_nimrod-0.0.11-py3-none-any.whl
| Download URL | slg_nimrod-0.0.11-py3-none-any.whl |
|---|---|
| Size | 82.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c2d45dc68f53b6f090125198944f4812a7db8dd95793f423667da9a9b6176f0b
|
|
BLAKE2b-256 checksum How to use checksums |
3e6ec95c949890b1d0010e5161894f4359ed51414ea23292a4aec4369c246c82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.6
|