Skip to content

pedrocg42/continual-music-classification

Repository files navigation

PRAIG-logo

Continual Learning for Music Classification

Python PyTorch License

AbstractProject SetupDataRun ExperimentsLicense

Updates

  • Usage instructions included!
  • The paper was accepted at ISMIR 2024!

Abstract

Music classification is a prominent research area within Music Information Retrieval. While Deep Learning methods can adequately perform this task, their classification space remains fixed once trained, which conflicts with the dynamic nature of the ever-evolving music landscape. This work explores, for the first time, the application of Continual Learning (CL) in the context of music classification. Specifically, we thoroughly evaluate five state-of-the-art CL approaches across four different music classification tasks. Additionally, we showcase that a foundation model might be the key to CL in music classification. To that end, we study a new approach called \emph{Pre-trained Class Centers}, which leverages pre-trained features to create fixed class-center spaces. Our results reveal that existing CL methods struggle when applied to music classification tasks, whereas this simple method consistently outperforms them. This highlights the need for CL methods tailored specifically for music classification.

content

Project Setup

This implementation has been developed in Python 3.10, and CUDA 11.

To setup a project, run the following configuration instructions:

Python virtual environment

Create a virtual environment using uv run the following:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install -e .

In order to indicate where the data has to be read from you need to set a environment variable:

DATASETS_PATH=<datasets_path>

In order for everything to work smoothly, please save all datasets in the same folder and leave the folder structure as it was when they were downloaded.

Data

The datasets used for our experimentation are currently publicily available at:

Run Experiments

We follow an experimentation protocol where the experiments are defined as python configurations, you can find these configurations in the experiments folder.

In order to launch all experiments for MERT:

bash run_experiments_mert.sh

In order to launch all experiments for CLMR:

bash run_experiments_clmr.sh

License

This work is under a MIT license.

About

Continual Learning for Music Classification 🚀

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published