48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# 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. |