Spaces:
Running
Running
import os | |
from datasets import load_dataset | |
from tqdm import tqdm | |
from zerorvc import RVCTrainer, pretrained_checkpoints | |
HF_TOKEN = os.environ.get("HF_TOKEN") | |
EPOCHS = 100 | |
BATCH_SIZE = 8 | |
DATASET = "JacobLinCool/my-rvc-dataset" | |
MODEL = "JacobLinCool/my-rvc-model" | |
dataset = load_dataset(DATASET, token=HF_TOKEN) | |
print(dataset) | |
trainer = RVCTrainer(checkpoint_dir="./checkpoints") | |
training = tqdm( | |
trainer.train( | |
dataset=dataset["train"], | |
resume_from=pretrained_checkpoints(), # resume training from the pretrained VCTK checkpoint | |
epochs=EPOCHS, | |
batch_size=BATCH_SIZE, | |
), | |
total=EPOCHS, | |
) | |
# Training loop: iterate over epochs | |
for checkpoint in training: | |
training.set_description( | |
f"Epoch {checkpoint.epoch}/{EPOCHS} loss: (gen: {checkpoint.loss_gen:.4f}, fm: {checkpoint.loss_fm:.4f}, mel: {checkpoint.loss_mel:.4f}, kl: {checkpoint.loss_kl:.4f}, disc: {checkpoint.loss_disc:.4f})" | |
) | |
# Save checkpoint every 10 epochs | |
if checkpoint.epoch % 10 == 0: | |
checkpoint.save(checkpoint_dir=trainer.checkpoint_dir) | |
# Directly push the synthesizer to the Hugging Face Hub | |
checkpoint.G.push_to_hub(MODEL, token=HF_TOKEN, private=True) | |
print("Training completed.") | |