Five Deep Learning Frameworks that you Should Know About and Some Data to Back it up
Deep learning is one of the hottest trends in the technology ecosystem. Every week. From IBM Watson learning about music to Google’s Deep Mind optimizing energy costs in a datacenter, every week we are reading about new solutions that are improved using deep learning capabilities. Similarly, there are new startups and technologies that are trying to provide deep learning capabilities to power the next generation of solutions in the space.
When thinking about the deep learning technology ecosystem, we can identify two main groups:
· Platform as a Service Providers: Deep learning services included as part of PaaS solutions. Technologies like IBM Watson Developer Cloud, Microsoft’s Cognitive Services or Google’s Natural Language and Vision APIs fall are some of the best examples of this group.
· Deep Learning Frameworks: Libraries and programming models that enable the fundamental constructs to build deep learning applications. This is a rapidly growing category that is seeing a tremendous level of innovation.
What are the Most Popular Deep Learning Frameworks in the Market?
· TensorFlow: Google’s TensorFlow deep learning framework has been in development for years as proprietary software. It was developed originally by the Google Brain Team for conducting research in machine learning and deep neural networks. The framework’s name is derived from the fact that it uses data flow graphs, where nodes represent a computation and edges represent the flow of information — in Tensor form — from one node to another.
· Torch: Torch was originally developed at NYU, and is based upon the scripting language Lua, which was designed to be portable, fast, extensible, and easy to use in development. Lua was also designed to have an easy-to-use syntax, which is reflected by Torch’s syntactic ease of use. Torch features a large number of community-contributed packages, giving Torch a versatile range of support and functionality.
· Theano: Very popular within the academic research community, Theano is considered grand-daddy of deep-learning frameworks, which is written in Python. Theano is a library that handles multidimensional arrays, like Numpy. Used with other libs, it is well suited to data exploration and intended for research.
· Caffe: Caffe is a well-known and widely used machine-vision library that ported Matlab’s implementation of fast convolutional nets to C and C++. Caffe was developed at the Berkeley Vision and Learning Center (BVLC). Caffe is useful for performing image analysis (Convolutional Neural Networks, or CNNs) and regional analysis within images using convolutional neural networks (Regions with Convolutional Neural Networks, or RCNNs). Caffe is not intended for other deep-learning applications such as text, sound or time series data. Like other frameworks mentioned here, Caffe has chosen Python for its API.
· CNTK: CNTK is Microsoft’s open-source deep-learning framework. The acronym stands for “Computational Network Toolkit.” The library includes feed-forward DNNs, convolutional nets and recurrent networks. CNTK offers a Python API over C++ code. While CNTK appears to have a permissive license, it has not adopted one of the more conventional licenses, such as ASF 2.0, BSD or MIT.
Some Data Points
There are plenty of analysis that compares these different deep learning frameworks in terms of capabilities. However, I thought it would be a good idea to take a look at some data points to evaluate the market traction. Here is an initial analysis from Google and Linkedin data: