Spaces:
Sleeping
Lyrebird VampNet
This repository contains recipes for training generative music models on top of the Lyrebird Audio Codec.
Install hooks
First install the pre-commit util:
https://pre-commit.com/#install
pip install pre-commit # with pip
brew install pre-commit # on Mac
Then install the git hooks
pre-commit install
# check .pre-commit-config.yaml for details of hooks
Upon git commit
, the pre-commit hooks will be run automatically on the stage files (i.e. added by git add
)
N.B. By default, pre-commit checks only run on staged files
If you need to run it on all files:
pre-commit run --all-files
Development
Setting everything up
Run the setup script to set up your environment via:
python env/setup.py
The setup script does not require any dependencies beyond just Python.
Once run, follow the instructions it prints out to create your
environment file, which will be at env/env.sh
.
Note that if this is a new machine, and the data is not downloaded somewhere on it already, it will ask you for a directory to download the data to.
For Github setup, if you don't have a .netrc token, create one by going to your Github profile -> Developer settings -> Personal access tokens -> Generate new token. Copy the token and keep it secret, keep it safe.
When complete, run:
source env/env.sh
Now build and launch the Docker containers:
docker compose up -d
This builds and runs a Jupyter notebook and Tensorboard
in the background, which points to your TENSORBOARD_PATH
env. variable.
Now, launch your development environment via:
docker compose run dev
To tear down your development environment, just do
docker compose down
Launching an experiment
Experiments are first staged by running the stage
command (which corresponds to the script scripts/exp/stage.py
).
stage
creates a directory with a copy of all of the Git-tracked files in the root repository.stage
launches a shell into said directory, so all commands are run on the
copy of the original repository code. This is useful for rewinding to an old experiment
and resuming it, for example. Even if the repository code changes, the snapshot in the experiment directory is unchanged from the original run, so it can be re-used.
Then, the experiment can be run via:
torchrun --nproc_per_node gpu \
scripts/exp/train.py \
--args.load=conf/args.yml \
The full settings are in conf/daps/train.yml.
Useful commands
Cleaning up after a run
Sometimes DDP runs fail to clear themselves out of the machine. To fix this, run
cleanup