Machine Learning Frameworks
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.