Machine Learning Frameworks
Updated at 2018-03-09 04:09
Machine learning frameworks/libraries provide programmable interfaces to abstract away compute kernel stuff like minimizing memory usage and utilizing GPUs.
Any of the frameworks can be used to any problem but here are some pointers:
Language(s) Especially good for:
MXNet Python, R, Julia, Scala multi-GPU
Dynet Python, C++
Theano Python, C++ speech, time-series, rnn
TensorFlow Python images, recommendations, cnn
PaddlePaddle Python
Chainer Python
Apache Singa Python
Neon Python
PyTorch Python videos, recommendations, cnn
Torch Lua videos, recommendations, cnn
CNTK C++ speech, time-series, rnn
Caffe C++
DeepLearning4j Java
Converting a model blueprint from a framework to another is usually easy. It is quite common to see multiple frameworks in use inside a single organization.
Keras is a high level library on top of TensorFlow or Theano. I would still call it a machine learning framework as it has its own, cleaner way of defining models. It is especially great for prototyping.
Gluon is a high level library on top of MXNet and CNTK. Same as Keras but different lower level libraries.