{"id":13862050,"url":"https://github.com/archinetai/audio-diffusion-pytorch-trainer","last_synced_at":"2025-10-05T01:22:07.933Z","repository":{"id":59546524,"uuid":"526533469","full_name":"archinetai/audio-diffusion-pytorch-trainer","owner":"archinetai","description":"Trainer for audio-diffusion-pytorch","archived":false,"fork":false,"pushed_at":"2023-01-13T14:23:16.000Z","size":270,"stargazers_count":129,"open_issues_count":9,"forks_count":22,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-07T20:43:14.386Z","etag":null,"topics":["artificial-intelligence","audio-generation","deep-learning","denoising-diffusion"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/archinetai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-19T08:56:48.000Z","updated_at":"2025-06-03T07:44:11.000Z","dependencies_parsed_at":"2023-02-09T16:00:54.516Z","dependency_job_id":null,"html_url":"https://github.com/archinetai/audio-diffusion-pytorch-trainer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/archinetai/audio-diffusion-pytorch-trainer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archinetai%2Faudio-diffusion-pytorch-trainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archinetai%2Faudio-diffusion-pytorch-trainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archinetai%2Faudio-diffusion-pytorch-trainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archinetai%2Faudio-diffusion-pytorch-trainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/archinetai","download_url":"https://codeload.github.com/archinetai/audio-diffusion-pytorch-trainer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archinetai%2Faudio-diffusion-pytorch-trainer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278399390,"owners_count":25980330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","audio-generation","deep-learning","denoising-diffusion"],"created_at":"2024-08-05T06:01:35.718Z","updated_at":"2025-10-05T01:22:07.900Z","avatar_url":"https://github.com/archinetai.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Trainer for [`audio-diffusion-pytorch`](https://github.com/archinetai/audio-diffusion-pytorch)\n\naudio-diffusion-pytorch-trainer notebook: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/archinetai/audio-diffusion-pytorch-trainer/blob/main/notebooks/audio_diffusion_pytorch_trainer_v0_2.ipynb)\n\n## Setup\n\n(Optional) Create virtual environment and activate it\n\n```bash\npython3 -m venv venv\n\nsource venv/bin/activate\n```\nInstall requirements\n\n```bash\npip install -r requirements.txt\n```\n\nAdd environment variables, rename `.env.tmp` to `.env` and replace with your own variables (example values are random)\n```bash\nDIR_LOGS=/logs\nDIR_DATA=/data\n\n# Required if using wandb logger\nWANDB_PROJECT=audioproject\nWANDB_ENTITY=johndoe\nWANDB_API_KEY=a21dzbqlybbzccqla4txa21dzbqlybbzccqla4tx\n\n# Required if using Common Voice dataset\nHUGGINGFACE_TOKEN=hf_NUNySPyUNsmRIb9sUC4FKR2hIeacJOr4Rm\n```\n\n## Run Experiments\nRun test experiment, see the [`exp`](exp/) folder for other experiments (create your own `.yaml` file there to run a custom experiment!)\n```bash\npython train.py exp=base_test\n```\n\nRun on GPU(s)\n\n```bash\npython train.py exp=base_test trainer.gpus=1\n```\n\nResume run from a checkpoint\n\n```bash\npython train.py exp=base_test +ckpt=/logs/ckpts/2022-08-17-01-22-18/'last.ckpt'\n```\n\n## FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003eHow do I use the CommonVoice dataset?\u003c/summary\u003e\n\nBefore running an experiment on commonvoice dataset you have to:\n1. Create a Huggingface account if you don't already have one [here](https://huggingface.co/join)\n2. Accept the terms of the version of [common voice dataset](https://huggingface.co/mozilla-foundation) you will be using by clicking on it and selecting \"Access repository\".\n3. Add your [access token](https://huggingface.co/settings/tokens) to the `.env` file, for example `HUGGINGFACE_TOKEN=hf_NUNySPyUNsmRIb9sUC4FKR2hIeacJOr4Rm`.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHow do I load the model once I'm done training?\u003c/summary\u003e\n\nIf you want to load the checkpoint to restore training with the trainer you can do `python train.py exp=my_experiment +ckpt=/logs/ckpts/2022-08-17-01-22-18/'last.ckpt'`.\n\nOtherwise if you want to instantiate a model from the checkpoint:\n```py\nfrom main.mymodule import Model\nmodel = Model.load_from_checkpoint(\n    checkpoint_path='my_checkpoint.ckpt',\n    learning_rate=1e-4,\n    beta1=0.9,\n    beta2=0.99,\n    in_channels=1,\n    patch_size=16,\n    all_other_paratemeters_here...\n)\n```\nto get only the PyTorch `.pt` checkpoint you can save the internal model weights as `torch.save(model.model.state_dict(), 'torchckpt.pt')`.\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eWhy no checkpoint is created at the end of the epoch?\u003c/summary\u003e\n\nIf the epoch is shorter than `log_every_n_steps` it doesn't save the checkpoint at the end of the epoch, but after the provided number of steps. If you want to checkpoint more frequently you can add `every_n_train_steps` to the ModelCheckpoint e.g.:\n```yaml\nmodel_checkpoint:\n    _target_: pytorch_lightning.callbacks.ModelCheckpoint\n    monitor: \"valid_loss\"   # name of the logged metric which determines when model is improving\n    save_top_k: 1           # save k best models (determined by above metric)\n    save_last: True         # additionaly always save model from last epoch\n    mode: \"min\"             # can be \"max\" or \"min\"\n    verbose: False\n    dirpath: ${logs_dir}/ckpts/${now:%Y-%m-%d-%H-%M-%S}\n    filename: '{epoch:02d}-{valid_loss:.3f}'\n    every_n_train_steps: 10\n```\nNote that logging the checkpoint so frequently is not recommended in general, since it takes a bit of time to store the file.\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchinetai%2Faudio-diffusion-pytorch-trainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farchinetai%2Faudio-diffusion-pytorch-trainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchinetai%2Faudio-diffusion-pytorch-trainer/lists"}