A Kotlin native port of Google Magenta and Wave2Midi2Wave.
Port Magenta to Kotlin Native to make it run on various platforms such as:
- iOS (arm32, arm64, emulator x86_64)
- MacOS (x86_64)
- Android (arm32, arm64)
- Windows (mingw x86_64)
- Linux (x86_64, arm32, MIPS, MIPS little endian)
- WebAssembly (wasm32)
We will test with four Titan V cards to see how it scales well.
Figure out why the Python version of Magenta is running so slow during the training phase using Titan V. Modify TensorFlow if necessary to get the maximum 110 tflops performance from Titan V.
Measure the elapsed time during training of performance_rnn to see if we have any performance gains after porting Magenta to Kotlin Native.
Port performance_rnn and dependent codes to Kotlin native.
Add support for multiple GPUs to performance_rnn.
Do performance tuning to get 110 tflops from a Titan V card during the training phase of performance_rnn.
Write codes for loading the MAESTRO dataset in Kotlin native. https://magenta.tensorflow.org/datasets/maestro
Reproduce Wave2Midi2Wave model in the following paper.
ENABLING FACTORIZED PIANO MUSIC MODELING AND GENERATION WITH THE MAESTRO DATASET https://arxiv.org/abs/1810.12247
This is a personal project to learn about TensorFlow and Magenta. Not for a production usage. I warned you ;-).