Since many businesses want to make use of AI in order to scale up or take their start-up off the ground, it is crucial to realize one thing: the technology they choose to work with must be paired with an adequate deep learning framework, especially because each framework serves a different purpose. Finding that perfect fit is essential in terms of smooth and fast business development, as well as successful deployment.
The following list of deep learning frameworks might come in handy during the process of selecting the right one for the particular challenges that you’re facing. Compare the pros and cons of different solutions, check their limitations, and learn about best use cases for each solution!
Created by Google and written in C++ and Python, TensorFlow is perceived to be one of the best open source libraries for numerical computation. It just has to be good, especially if giants like DeepMind, Uber, AirBnB, or Dropbox have all decided to leverage this framework.
TensorFlow is good for advanced projects, such as creating multilayer neural networks. It’s used in voice/image recognition and text-based apps (like Google Translate).
Of course, experts have considered both its pros...
There is also one significant limitation: the only fully supported language is Python.
The next major version of the framework is Tensorflow 2.0. It is going to be released soon, right now it's accessible as an RC (release candidate).
It brings us a bunch of exciting features, such as:
PyTorch is the Python successor of Torch library written in Lua and a big competitor for TensorFlow. It was developed by Facebook and is used by Twitter, Salesforce, the University of Oxford, and many others.
PyTorch is mainly used to train deep learning models quickly and effectively, so it’s the framework of choice for a large number of researchers.
It has some significant advantages:
The first stable version, 1.0, transforms PyTorch into a mature and production-ready tool.
It now supports model serving with three strategies:
This is a minimalistic Python-based library that can be run on top of TensorFlow, Theano, or CNTK. It was developed by a Google engineer, Francois Chollet, in order to facilitate rapid experimentation. It supports a wide range of neural network layers such as convolutional layers, recurrent layers, or dense layers.
One can make good use of it in areas of translation, image recognition, speech recognition, and so on.
...can easily blot out small disadvantages:
It also doesn’t provide as many functionalities as TensorFlow, and ensures less control over the network, so these could be serious limitations if you plan to build a special type of DL model.
The Keras interface format has become a standard in deep learning development world. That is why, as mentioned before, it is possible to use Keras as a module of Tensorflow. It makes development easier and reduces differences between these two frameworks. It also combines the advantages of using each of them.
The MXNet framework is known for its great scalability, so it’s used by large companies mainly for speech and handwriting recognition, NLP, and forecasting.
Some of the main pros...
...and the cons of MXNet:
So, MXNet is a good framework for big industrial projects, but since it is still pretty new, there’s a chance that you won’t receive support exactly when you need it – keep that in mind.
This is now called The Microsoft Cognitive Toolkit – an open-source DL framework created to deal with big datasets and to support Python, C++, C#, and Java.
CNTK facilitates really efficient training for voice, handwriting, and image recognition, and supports both CNNs and RNNs. It is used in Skype, Xbox and Cortana.
As always, experts have considered both its advantages...
...and one disadvantage:
Next framework is a great example of significant variance in the world of Machine Learning frameworks:
Caffe is a framework implemented in C++ that has a useful Python interface. It supports CNNs and feedforward networks, and is good for training models (without writing any additional lines of code), image processing, and for perfecting existing networks. However… it’s sometimes poorly documented, and difficult to compile. There is no sign of any bigger company deploying Caffe right now.
But here comes Caffe2 – introduced by Facebook in 2017, a natural successor to the old Caffe, built for mobile and large-scale deployments in production environments. At Facebook, it’s known as “the production-ready platform, (...) shipping to more than 1 billion phones spanning eight generations of iPhones and six generations of Android CPU architectures.”
In May 2018 Caffe2 has been merged into the PyTorch 1.0 stable version. The two fabulous engines joined forces. Now we can consider the pros below as a part of PyTorch. Anyway, we can see what were the good sides of using Caffe2.
The framework is praised for several reasons:
Those were the top 5 most famous Deep Learning Frameworks. The ones below are less popular, but still worth considering.
If your core programming language is Java – you should definitely take a closer look at DL4J. It’s a commercial-grade, open-source framework written mainly for Java and Scala, offering massive support for different types of neural networks (like CNN, RNN, RNTN, or LTSM).
It’s a great framework of choice, with a lot of potential in areas of image recognition, natural language processing, fraud detection, and text mining. Plus:
Surprisingly, when talking about DL4J, experts do not focus on any particular drawback of the framework as much as they do on the general cons of using Java for machine learning. Because Java is not very popular among machine learning projects, the framework itself cannot rely on growing codebases. As a result, the costs of development for your project may be much higher, significantly slowing down your business…
Another Python-based DL framework, supported by giants like IBM, Intel, Nvidia, and AWS. It can be run on multiple GPUs with little effort.
Chainer is leveraged mainly for speech recognition, machine translation, and sentiment analysis. It supports various network architectures, like CNNs, fast-forward, nets and RNNs, and has some significant advantages over its competitors:
On the other hand:
As other Python-oriented frameworks are much more popular, you may not receive as much help with Chainer as you would with more popular frameworks, such as TF or PyTorch.
Choosing the perfect framework for a DL project can be a tough nut to crack. So while thinking what is the best framework for deep learning, you have to take several factors into consideration:
We hope the above comparison will shed some light on this problem and help you select the appropriate framework for your needs.
This article was first published on Sep 6, 2018