Deep learning is mostly sought by companies to solve hard problems like speech recognition, object recognition and machine translation. More than a thousand companies have shifted their focus to Artificial Intelligence and in that, Deep learning.
Deep learning can only be as good as the data you use to train it. If you don’t have good data and you are trying to gain stellar results, you will only get garbage. Because Garbage in, is Garbage out.
Why is that so? You can only discover patterns that your data has, not find something great out of thin air. So there are two things really important when it comes to going deep with deep learning.
One, get the right data and Two, get the right software to make sense of that data. I can’t help you with number one in this article but with number two I surely can.
Following is a detail of some of the most famous Deep learning software’s out there.
As far as Deep learning softwares go, Matlab seems to be the most popular with the people of US.
MATLAB is short for Matrix laboratory. It was created by MathWorks, primarily intended for numerical computations but has gained popularity amongst engineers, scientists and experts for image processing.
It has great tools and functions for handling large amounts of data sets, which makes it one of the prime candidates to use as a deep learning framework. As the name suggests, mathematical modeling and data acquisition are two of the major strong suites of MATLAB. You can also use it to integrate computation, visualization, and programming in an easy-to-use environment coined with easy and familiar mathematical notations for various problems and solutions.
MATLAB also offers specialized toolboxes for working with machine learning, neural networks, computer vision, and automated driving.
The best thing about this framework is that, you need to write less code to get what you want. Be it creating, visualizing or deploying models. You can do all that in less code and without needing any expert level ‘programming’ skills.
Lastly, you can also create high-performance CUDA code for deep learning and vision applications automatically from MATLAB code.
Available on Platforms: Linux, MacOS, Windows
Supports: Convolutional Neural Netwroks, Recurrent Neural Networks, CUDA Code
Developed by the Google Brain Team, TensorFlow is an open software Math Library. TensorFlow is most famous for its natural language processing capabilities. It comes with text classification and summarization, speech recognition, image recognition, forecasting and tagging. You can also use it for recognizing handwriting.
Quiet an amazing feature pack. One could argue of this one to the best when it comes to deep learning frameworks. Industry leaders like Airbus, Twitter and IBM use Tensor Flow for their deep learning needs.
Apart from features, I think Tensor Flow rose to fame because of its highly flexible system architecture.
Another great thing about TensorFlow is that its Python based and has great documentation and support from Google. So knowing Python is a plus, but if you don’t, you can very easily find good guides and other learning materials online.
Available on Platforms: Linux, MacOS, Windows, Android
Supports: Convolutional Neural Networks, Recurrent Neural Networks,Cuda Code
PyTorch is a Python based scientific computing package. Created by Facebook’s AI research group, it is great with deep learning research platforms that provide maximum flexibility and speed. Uber built their software for probabilistic programming ‘Pyro’ using PyTorch.
PyTorch has developed quite a bit of popularity and has gained a high level of adoption in the deep learning framework community. It is considered to be a serious contender to TensorFlow.
Evident from the name, you can use Python in PyTorch. You get good flexibility in creating deep learning models. It is great if you need to experiment with ideas. PyTorch gives you a strong GPU boost, especially if you are working with tensors and dynamic neural networks. PyTorch’s greatest benefit is effecient memory usage. There are custom memory allocators present to be used for the GPU. These make sure that your deep learning models are memory effeceint, thus enabling you to work with bigger deep learning models.
Anyone with basic understanding of Python, can start working on their own form of a deep learning model. So PyTorch away!
Available on Platforms: Linux, Windows, MacOS
Supports: Recurrent neural networks, Cuda Code, Convolutional Neural Networks.
4: Torch Framework
Torch is a Lua (A lightweight, multi-paradigm programming language designed primarily for embedded use in applications) based deep learning framework. It is maintained by and is used widely amongst industry giants such as Facebook, Twitter and Google.
It was originally made to aid in the production of building models and add flexibility to the whole process. Its contributors include people from Google’s DeepMind, Facebook, Twitter and more but presently, Torch is not doing so well with the adoption rate. Primarily because of the ‘Lua’ angle. The Lua depedency is added learning.
You are restricted to alot of libraries. There was a time when it gave quite a bit of competition to Theano, another deep learning framework covered later in this article. Due to most softwares utilizing the power of Python, Torch is lacking behind. If you still do plan on using on Torch, I recommend you use it to create dynamic graphs.
Available on Platforms: Windows, Linux, MacOS, Android
Supports: Recurrent Neural Networks, Convolutional Neural networks, Cuda Code
Theano, named after a Greek mathematician, is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently.
It is designed to handle such types of computation that require large neural network algorithms used in Deep Learning. The development on Theano started in 2007, making it one of the first libraries of its kind. To date, it is considered to be an industry standard for Deep Learning research and development.
Theano is ideal for creating Deep Learning models and wrapper libraries. It also offers a transparent use of GPU as opposed to using a CPU. The dynamic C code makes it very fast in evaluating expressions and you can also perform symbolic differentiation quite effeciently.
6: Cognitive toolkit
Cognitive Toolkit, also known as CNTK, is a framework developed by Microsoft. It uses a static graph similar to TensorFlow. One of the key advantages of this framework is building models to solve speech and image problems.
It goes without saying that a giant like Microsoft backing the software, there is bound to be great tooling support and easy integration with Cloud services like Azure. CNTK offers a Python API over C++ code.
Not having an open-source liscence used to be a major drawback but they changed it and now operate under the MIT liscence, so you are good to go.
Available on Platforms: Windows, Linux, macOs
Supports: Feed-forward neural networks, Convolutional neural networks and recurrent neural networks, Cuda Code
MXNet is an Apache Software Foundation framework and is considered as one of the many open-source and powerful deep learning frameworks.
MXNet is mostly used to define, train and deploy deep neural networks. It is lean, flexible and highly-scalable. Developing deep learning algorithms becomes very easy in MXNet. It allows fast model-training and supports a flexible programming model and multiple languages.
It may feel like a new framework but it has been around since 2015. Although it wasn’t perceived very positively in its initial stages, it has garnered quite a big spot in the limelight now because of the support from Amazon and Microsoft and by introducing a high-level wrapper “Gluon” in its arsenal of tools.
Supports: Convolution Neural Networks, Recurrent Neural Networks, Cuda Code
Caffe is a deep learning framework developed by BAIR (Berkeley AI Research) and the community. It was created keeping modularity, expression, and speed in mind. The famous ‘Caffe Model Zoo’ library is exceptionally amazing when it comes to modeling CNNs and image processing, because of the pre-trained networks.
Caffe has a good build up of features but speed is where it really shines. It can process over 600K images in a single day with a single Nvidia K40 GPU. That translates to 1 image processed per 1 millisecond for inference and 1 image processed in 4 milliseconds for learning. This is just the older version, the recent library versions are even faster.
However, there are a few missing perks. There is no support for fine granularity network layers and the overall support for recurrent neural networks and language modeling is quite shabby. Using Caffe, if you need to establish complex layer types, you will have to do it in some low-level language.
Available on Platforms: Windows, Linux, macOS
Supports: Recurrent Neural Networks , Convolutional Neural Network, Cuda Code
Keras is an open source neural network library, also written in Python. You can use it on top of TensorFlow, Microsoft Cognitive Toolkit and also Theano.
TensorFlow’s even uses it as part of its core API.
Keras was built with a minimalist approach and to offer a quick way of prototyping by constructing effective neural networks.
It is lightweight and easy to use. Creating deep learning models with multiple layers is very straight forward with Keras.
Other than that Keras is great for classification, text generation and summarization, tagging, translation along with speech recognition and a few others deep learning features.
Anyone having experience with Python can very easily sink into deep learning by using Keras.
Available on Platforms: Linux, Windows, macOs
Supports: Convolutional Neural Networks, Recreational Neural Networks, Cuda Code
Chainer is yet another open-source neural network framework with a Python API. Chainer was doing very well before PyTorch came at Facebook. It used to be the leading neural network framework for dynamic computation graphs, networks that allowed input of varying length.
That said, Chainer is strikingly faster than other Python-oriented frameworks. What sets Chainer apart is its approach of building computational graphs dynamically, during training. This gives users added control to change graphs at every iteration of each sample.
Chainer code is also very easy to debug and refactor using a standard debugger and profiler. You get great flexibility in implementing complex neural networks.
In a nutshell, Chainer is a powerful, flexible and intuitive deep learning framework with added support on various network architectures.
Available on Platforms: Linux, windows, macOs
Supports: Recurrent neural networks, Convolutional neural networks, Cuda Code
11: Apache Singa
SINGA was initiated by the DB System Group at National University of Singapore in 2014, in collaboration with the database group of Zhejiang University. It is a general distributed deep learning platform for training deep learning models over large datasets. It is designed with an intuitive programming model based on the layer abstraction. It has a sufficiently flexible architecture for running synchronous, asynchronous and hybrid training frameworks. You also get support for various neural network partitioning schemes.
If you need big data analytics, Apache Singa is the go-to tool for that. Handling complex computations comes in a very flexible and scalable package with this framework.
Available on Platforms: Linux, macOs, Windows
Supports: Feed-forward models including, convolutional neural networks (CNN), energy models like restricted Boltzmann machine (RBM), and recurrent neural networks (RNN)