Spaces:
Runtime error
Runtime error
| # 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: | |
| ```bash | |
| 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](https://www.youtube.com/watch?v=iThtELZvfPs). | |
| When complete, run: | |
| ```bash | |
| source env/env.sh | |
| ``` | |
| Now build and launch the Docker containers: | |
| ```bash | |
| 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: | |
| ```bash | |
| docker compose run dev | |
| ``` | |
| To tear down your development environment, just do | |
| ```bash | |
| 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: | |
| ```bash | |
| torchrun --nproc_per_node gpu \ | |
| scripts/exp/train.py \ | |
| --args.load=conf/args.yml \ | |
| ``` | |
| The full settings are in [conf/daps/train.yml](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 | |
| ```bash | |
| cleanup | |
| ``` | |