8 Best frameworks for deep learning in 2020

Image: Deep learning frameworks on frames

A deep learning framework is a combination of interfaces, libraries, and tools used to define and train machine learning models in a fast and precise way.

Because deep learning uses unstructured and non-textual data, we need a framework that handles the interaction between layers and makes the development process quick by learning from the data you insert and make decisions automatically.

If you’re getting started in deep learning this year consider one of the frameworks we list below. Remember to pick the one that will help you reach your goals and vision.

TensorFlow

Image: TensorFlow logo

TensorFlow is the first thing mentioned when we talk about studying deep learning. This framework is not only used by Google – the company that created it – but also by other companies such as Dropbox, eBay, Airbnb, Nvidia... the list goes on.

You can use TensorFlow to build high-level to low-level APIs, allowing you to run your apps on almost any device. Although Python is the main language, the TensorFlow interface can be accessed and controlled using other languages such as C++, java, Julia or JavaScript.

Its open-source structure allows multiple integrations, fast support and updates from the community; and its reliance on static graph computation, allows you to run your calculations immediately or save them for later use. These reasons and the fact that you can visualize the construction of your neural network using the Tensorboard makes TensorFlow the most popular framework for deep learning.

Nr of contributors at GitHub: 2,459

PyTorch

PyTorch logo

PyThorch is a framework developed by Facebook to power its services, but is now open source and is powering products from companies such as Salesforce and Udacity.

PyTorch operates with a dynamically updated graph, allowing you to make changes to the architecture while in the process. With PyTorch, it is easy to train and develop a neural network even if you have no prior experience with it.

Being open-source and relying on python you can expect easy integrations, easy learning, usage and debugging. In case of doubts, you can also count on the great support and updates from both communities – Python community and Pythorch community.

Nr of contributors at GitHub: 1,358

Theano

Theano logo

Theano is a python library that allows you to define, optimize and run mathematical expressions quickly and easily.

Although Theano can run on CPUs, it runs faster on a GPU, especially if implemented with C and used to handle large amounts of data.

Theano is also fast because neural networks structures can be represented (transformed) in matrixes, and the usage of Numpy (or other integrations) to compute matrixes accelerates the output1.

Nr of contributors at GitHub: 332

Apache MxNet

Image: Apache MxNet logo

This is a framework created by Apache to power big industrial projects due to its great scalability, high performance/ fast problem solving and advanced GPU support.

MxNet can run on a variety of devices and is supported by many languages such as Java, R, JavaScript, Scala and Go.

Although the number of users and community support is low, MxNet has a well-written documentation and a great potential to grow, particularly now that Amazon chose it as the primary tool for machine learning on AWS.

Nr of contributors at GitHub: 785

Microsoft Cognitive Toolkit (previously CNTK)

Image: Microsoft Cognitive Toolkit logo

If you’re thinking of coding applications or services to run on Azure (Microsoft cloud platform), the Microsoft Cognitive Toolkit is the framework to choose. It is an open-source and supported by python, C++, C#, Java and other languages.

Because Microsoft Cognitive Toolkit was created intending to think like a human brain, it can process huge amounts of unstructured data, while also providing a rapid training time and intuitive architecture.

By choosing this framework – the same behind skype, Xbox, and Cortana, you can have good performance, scalability, and easy integration of your app with the Azure cloud, but the number of members in the community and support is low.

Nr of contributors at GitHub: 198

Keras

Image: Keras logo

Just like Pytorch and Theano, Keras is a python-based library, for those who have large amounts of data.

Keras is a high-level API, that can be used on top of low-level API’s such as TensorFlow, Theano and Microsoft Cognitive Toolkit.

Some advantages of using Keras are that it is easy to understand – thus being the recommended framework for someone who’s starting in deep learning; fast to deploy and it supports multiple devices and platforms as well as multiple GPUs. Being based on python and other frameworks, Keras has big support from many communities.

Nr of contributors at GitHub: 816

Apple CORE ML

Image: Apple CORE ML logo

The Core ML framework was developed by Apple and it is the one powering apple’s ecosystem.

This is a low-level API that can make good use of the CPU and GPU performances and allows the models to run without a network connection, reducing the memory footprint and power consumption.

By using Core ML, you can import trained deep learning models from all major Python frameworks, such as Keras, TensorFlow, Caffe, ONNX and more, in order to provide great performance to your apps on mobiles, tablets, and computers.

Nr of contributors at GitHub: 60

Image: ONNYX logo

This is a framework that was born from the collaboration of Microsoft and Facebook to simplify the process of transferring and building models between different frameworks, tools, runtimes, and compilers.

ONNYX defines a common file type to run in all major platforms, while taking advantage of the benefits of low-level API’s such as Microsoft Cognitive Toolkit, MxNet, Caffe and (using converters) TensorFlow and Core ML.

The main idea of ONNX is to train a model in one stack and deploy it using another inference and prediction.

Nr of contributors at GitHub: 115

Final notes

This is a resume of the best frameworks for deep learning. There are many frameworks for this purpose, paid or free. To choose the best one you must know about which platform you’re developing your app. Generalist frameworks such as TensorFlow or Keras are great options to start from. But if you want to go into the specifics, then Core ML and Microsoft Cognitive Toolkit might be the best options. There are other frameworks not mentioned in this list to power android devices or other specific machines and purposes. If these fields interest you, we encourage you to search for them.

Anotações

  1. Computers process numbers faster than other types of data.

React!

Join the conversation about this topic on Facebook and Instagram.

Related articles

Learn more about AI with our email newsletters

Sign up to our mailing list today to receive the latest articles and insights on AI and other disruptive techs in your inbox