Open Source Libraries for Deep Learning
There are many open source libraries available: Caffe TensorFlow, Theano, and Torch.
Caffe is one of the first deep learning toolkit, started in late 2013, mainly used for convolutional neural network and still actively used. However, it doesn’t support recurrent networks and NLP models.
TensorFlow is a project recent open sourced by Google that is becoming popular due to its support for several types of architectures, including CNNs, Stacked Autoencoders, DBNs and unidirectional RNNs. In Tensorflow a network is specified as a symbolic graph of vector operations, such as matrix add/multiply or convolution and each layer is a composition of those operations. It used a high level scripting language which is very useful for fast deployment of models. The interface is accessible through Python or C++ and it has a very useful browser interface for debugging.
Theano is one of the most versatile and powerful toolkit for implementing deep learning models, being used in most recent research like attentive mechanism and bidirectional recurrent networks. Theano uses symbolic graphs and has implementations for most state-of-the-art networks – sometimes presented as a high level framework, as Keras.io. It has a very good performance and supports single and multiple GPU. The flip side being is the steep learning curve and being somehow hard to debug.
Torch provides a high level scripting interface (much like Matlab), with excellent performance for convolutional neural and recurrent neural networks. Is gives less flexibility if the user want to navigate at a more granular level. Torch runs on Lua, which allows very fast executions compared with other implementations.