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.