Blog > Brief guide to deep learning frameworks | [Mon, Feb 6 2017]
Deep learning is very exciting field now-a-days due to its increasing popularity of its performances on different types of datasets. Here, I will describe some of the currently most used deep learning frameworks and programming languages. Deep learning programs take a lot of memory and computational power and hence it is recomended to use state of the art libraries developed by the experts in the field. Following is list of some of the popular libraries used for deep learning:
- Tensorflow - Google : This is the most popular one and is heavily backed and developed by Google. It has mulit-GPU and cluster support and can be used with programming languages python and C++. Tensorflow can be installed on Windows, Mac and Linux. It has very good support on Linux and Mac but limited support on Windows as of now. It is mostly used with python and can be installed using simple pip commands with binary for your system. These days iPython notebook for programming in python. It comes with python package manager anaconda. You can learn more about tensorflow here.
- Theano - University de Montreal : This is old school library. It consists of tight integration with NumPy library. It is one of the first library to support GPU. It is used for fine grain research on neural networks. It has python interface to work with. Find out more about theano here.
- Keras, Tflearn, TF Slim : Keras operates on top of tensorflow or theano. Tflearn and TF Slim operate on top of tensorflow. These are high level API for programming using these libraries. Keras can be used with Keras.js for visualization of the network, parameters and its outputs at each stage, here is a nice example of that. Compared to tensorflow and theano these are easier and more user-friendly interfaces. You can learn more about keras here.
- Torch - Facebook : Torch is used for fine grain research on neural networks. It is excellent if you want to play with raw neural network and create your own architectures. It has Lua interface which is its programming language. It is heavily backed and developed by Facebook.
- cuDNN - nVidia : This is the library used by most frameworks for doing low level computations. It implements primitive neural network functions on GPU. It is developed and maintained by nVIDIA.
- mxnet - Amazon : It is developed and maintained by Amazon. Amazon officially declared that AWS shall feature mxnet. It has multi GPU support and it has interfaces in several programming languages such as python, julia, R, Scala, Javascript, etc. Learn more about mxnet here
- neon - Intel : neon is framework by Nervana which is recently acquired by Intel. Nervana started out as neural network chip manufacturer. It has python interface and often best on benchmarks. Learn more about neon here.
- caffe - Berkeley, AI Research Laboratory : caffe was initially developed for computer vision i.e. for mainly implementating CNN. It is oldest framework to include GPU support. It has python and C++ interface.
- Microsoft cognitive toolkit (CNTK) - Microsoft : It is mostly used by MS for their own research. It has mulit GPU support and scales very well. It has its custom interface with python, C++ and C# support.
Further reading and references:
- Lecture by Lex Firdman
- More libraries and their details can be found here.