2.1 KiB
AGU - projekt
Projekt bazowy: https://github.com/tensorflow/magenta/tree/master/magenta/models/onsets_frames_transcription
Wymagania
- docker
- LUB skonfigurowane środowisko magenta - https://github.com/tensorflow/magenta
Uruchomienie w dockerze
Aby wykorzystać obraz dockera najpierw trzeba go zbudować. Najłatwiej to zrobić z wykorzystaniem dołączonego Makefile:
$ make image # wywołuje docker build . --tag transcription:latest
W ten sposób zostanie zbudowany obraz transcription:latest
. Teraz możemy go wykorzystać:
$ docker run -v "$(pwd):/root/experiment" -p 6006:6006 -it transcription:latest
W ten sposób powinniśmy znaleźć się wewnątrz kontenera z skonfigurowanym środowiskiem i pobranym checkpointem. Katalog
w którym się znajdujemy powinien być zamontowany w obrazie jako ~/experiment
.
Dataset
Pliki midi zaczerpnięte z http://www.piano-midi.de/midi_files.htm stworzone przez Bernda Kruegera, udostępniane na licencji CC BY-SA 3.0.
Do przygotowania datasetu z załączonych plików midi
należy skorzystać ze skryptu prepare_dataset
. Pomoc i opis argumentów można uzyskać z pomocą argumentu -h
.
Przykładowe wywołanie:
python prepare_dataset.py -n 5
Wygeneruje dataset z pierwszych 5 plików midi w folderze ./dataset/midi
.
Następnie należy przygotować dataset do działania z siecią:
python /opt/conda/envs/magenta/lib/python3.7/site-packages/magenta/models/onsets_frames_transcription/onsets_frames_transcription_create_tfrecords.py --csv="./dataset/manifest.csv" --output_directory="./dataset/processed" --wav_dir="./dataset/wav" --midi_dir="./dataset/midi" --expected_splits="test"
Niestety, w tej wersji jest błąd przez co alias onsets_frames_transcription_create_tfrecords
nie działa i trzeba się ratować pełną ścieżką.
Konwersję i testy możemy przeprowadzić komendą:
onsets_frames_transcription_infer --model_dir="${MODEL_DIR}" --output_dir="./eval/" --examples_path=./dataset/processed/test.tfrecord* --hparams="use_cudnn=false" --preprocess_examples=True
Parametr --hparams="use_cudnn=false"
można pominąć jeżeli dysponujemy GPU z CUDA.