Fine-tune a model with custom dataset
Hi i've working on a dataset composed by bass, vocals, guitar, and the mixture of all the songs. Would it be a good idea to fine-tune a BSRNN model with my dataset? Can i do it based on your github project? Is there any way i could train a new model for my guitar dataset?
Thanks!!
You could use the GitHub repo to fine-tune the pretrained models on your dataset for vocals and bass. But, you would have to train a new model for guitar, like you said. You should note that if you don't have drums or other instruments in your mixtures, it may degrade performance as the model may forget how to handle those other instruments. The more diversity in training data, the better.
It would probably be worth trying to both fine-tune and train new models because these pretrained weights were from a noisy dataset, specifically for the MDX-23 competition. So they do not perform as well as if they were trained on something clean, like MUSDB18-HQ.
If you do not know where to begin, or are interested in other model architectures, I recommend this repo (https://github.com/ZFTurbo/Music-Source-Separation-Training). It has a lot of different models, pre-trained weights, and code to train and fine-tune with.
Best,
Chris
Hi Chris, thanks for your quick response. However, I'm still a bit stuck on doing my own experiment. Based on your repo, there is no configuration that allows me to train or fine-tune the model with my own dataset directly (for vocal and bass case). Instead, do I need to change some parts of your code?
Thank you, and I'll be reading the link you gave.
Please refer to the Training portion of the README, specifically:
"To load the model from a checkpoint, in the script include: ckpt_path=path/to/checkpoint.ckpt
"
So ultimately, you would end up with a command something along the lines of:python train.py train_dataset.target=bass model=bandsplitrnnbass ckpt_path=path/to/checkpoint.ckpt
This would load the checkpoint and begin training from there.
Of course, you can always hard-code the argument to line 45 of the config file (Music-Demixing-with-Band-Split-RNN/src/conf/config.yaml
). Then you wouldn't need to add the argument in the cli. All your preference.