a43992899 / MARBLE-Benchmark

Music Audio Representation Benchmark for Universal Evaluation
MIT License
86 stars 5 forks source link

Approaches to Add a New Model #6

Closed nicolaus625 closed 1 year ago

nicolaus625 commented 1 year ago

Please add the following instructions to the extract part of README

add folder ./benchmark/models/${model_name}, and then add ${model_name}.yaml nder the folder. You can refer to hubert and mert if your model is based on transformers with temporal output, otherwise you can refer to mule or clmr. You may also need to define differnt yaml files and subfolders for different version of your model.

You also need to include your model load and feature extraction code to extract_${model_name}_feature.py under the same folder.

Open the extract.py file. Add from benchmark.models.hubert.extract_hubert_features import main as extract_${model_name}_features_main . You may want to comment out the import of other model features to reduce additional dependency of other models.

Add ``'${modelname}':'extract${model_name}_features_main'` to NAME_TO_EXTRACT_FEATURES_MAIN in model_constants.py. If your code is really similar to HUBERT of Music2Vec, you can begin you development with adding your model class to hf_pretrains.py file, and add key-value pairs to NAME_TO_PRETRAIN_CLASS undermodel_constants.py```

Add folder configs/${model_name}/${dataset_name}.yaml. You can copy from other datasets. But you need to change some hyperparameters in the yaml file, such as