Ziel der Studienarbeit ist die Komposition eines kleinen Musikstücks mithilfe eines Neuronalen Netzes.
Es stehen LSTM, GRU und Transformer-Netze zur Verfügung. Die Netze werden mit Hilfe von Keras und Tensorflow implementiert. Es sind bereits trainierte Modelle vorhanden, die in der Webapp oder auch in den Jupyter-Notebook's (demos) verwendet werden können.
Hier wird beschrieben wir man das Projekt verwendet.
Achtung!
Die Verwendung der Transformer-Netze ist nicht nativ über die reine Installation des Projektes über PyPi verwendbar. Hierfür muss das Porjekt mittels git clone
heruntergeladen werden.
Um die unter demos bereitgestellten jupyter-notebook verwenden zu können, muss das Projekt mittels pip installiert werden. Hierfür gibt es folgende Möglichkeiten:
GitHub Repo
# Clone das Repo
git clone git@github.com:DHBW-FN-TIT20/Komposition-eines-Musikstuecks-mittels-Neuronaler-Netze.git mukkeBude
cd mukkeBude
# Installieren mittels pip
pip install .
Für die Verwendung der Jupyter-Notebooks muss jupyter-lab zusätzlich installiert werden!
pip install jupyterlab
Nach einer erfolgreichen installtion kann das modul mittels import mukkeBude
verwendet werden. Entsprechende Beispiele sind unter demos zu finden.
Im Ordner flask-webapp befindet sich eine Webapp, die die Verwendung der Netze ermöglicht. Für das Starten der Webapp sollte mukkeBude entsprechend installiert werden. Zusätzliche Abhängigkeiten können mittels pip install -r requirements-dev.txt
im Ordner flask-webapp installiert werden.
Starten der Webapp:
cd flask-webapp
flask run
Starten mit Docker:
# Bauen des Docker-Images
docker buildx build -t mukkebude .
# Starten des Docker-Containers
docker run -p 8080:8080 -d --name mukkebude mukkebude
Hier wird beschrieben, wie man seine Entwicklungsumgebung entsprechend vorbereitet, um an dem Projekt zu entwicklen. Empfohlen ist die Verwendung von Conda, da hier die Verwendung von der GPU deutlich einfach ist. Bei der Verwendung der anderen Methoden müssen unter Umständen weitere Schritte unternommen werden, um die GPU zu verwenden.
Installation mithilfe von conda:
conda env create -f environment.yml
conda activate tf-gpu
# Enable GPU support on Linux (need to be done in every new shell)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/
Ohne venv:
pip install -r requirements-dev.txt
Mit venv:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
poetry install --with=dev
poetry shell