5 Best Machine Learning Frameworks

What a time to be alive! When cars can (almost) drive themselves, our phones can unlock just by showing our face, and Siri can schedule meetings for us… Isn’t life grand? And easy? Machine Learning is seeping into our everyday lives - it’s not just operating behind the scenes in business helping banks spot fraudulent transactions, bolstering against enterprise cybersecurity attacks, and helping allocate and deallocate computing infrastructure for reduced operational costs.

Is there anything that ML can’t do?

It’s more than just hype, and if you have an application that needs the power of Machine Learning to conquer advanced decision-making tasks, then you’ll need a framework to develop the application, regular old React just won’t cut it.

In today’s post, we take a look at the best Machine Learning frameworks in 2019.

1. TensorFlow

Currently sitting atop the ML framework popularity chart is TensorFlow, which was the 8th most popular developer framework overall (among contenders like Node.js, Angular, and React), and the most loved framework overall(!)in StackOverflow’s annual Developer Survey 2018 .

This is why TensorFlow, built originally by Google and touting itself as “an end-to-end open source machine learning platform” is top of our list of best ML frameworks. If a developer says they’re experienced in ML but haven’t touched TensorFlow (or at the very least looked at it), then you maybe shouldn’t be hiring them.

Why TensorFlow?

  • Open source
  • Wide range of features
  • Fair amount of supporting tools and libraries available
  • Native Open Neural Network Exchange support for model export
  • Deployable across a range of different cloud platforms, including AWS
  • Frequent feature updates (TensorFlow 2.0 is out in Beta at the time of print)
  • Python-first, but also available for C++, Java, Go, R, Julia, JavaScript, Haskell, Go, and C#
  • Available for mobile and IoT devices
  • Thriving online community
  • Used by industry heavyweights such as AirBnb, Coca Cola, Lenovo, and PayPal

2. PyTorch

PyTorch, as the name suggests, is a Python-first deep learning platform that is another big name in the ML world. If TensorFlow is what is most-often used for production in enterprise, then PyTorch is the equivalent for the neural network research contingent.

The platform prides itself on its flexibility and speed, which makes it ideal for trialling research before moving to production.

Why PyTorch?

  • Open source
  • Wide range of features
  • Large set of models and datasets, developer tools, and libraries and extensions
  • Deployable across a range of different cloud platforms, including Microsoft Azure
  • Frequent feature updates (TensorFlow 2.0 is out in Beta at the time of print)
  • Python-first, but also available for C++
  • Available for mobile and IoT devices
  • Thriving online community
  • Used by industry heavyweights such as AirBnb, Coca Cola, Lenovo, and PayPal

3. Keras

Keras is a deep learning library rather than a framework, designed to run over the top of TensorFlow and CNTK (more on that in a minute). It’s a Python-based library, as much of the space is. Why is everything seemingly Python-first? That’s because Python is the language of data scientists, with the largest ecosystem of stats and maths based libraries in an easy to consume format, although R is arguably better for stats.

It’s an API that’s designed “for humans” so designed to be as easy to use as possible.

Why Keras?

  • Open source
  • Modular
  • User friendly
  • Very simple prototyping
  • Easily extensible
  • Suitable for beginners in terms of ease of use
  • Suitable for professionals in terms of extensibility

4. Apache MXNet

MXNet is an Apache Incubator project, that’s been on GitHub for around a year and a half. Because it’s an incubator project still, this means that Apache haven’t gone the whole way in with the project by making it a permanent part of their suite of products.

MXNet too is open source, supported noticeably by contributions by AWS.

Why MXNet?

  • Open source
  • Designed specifically for building scalable neural networks
  • Supports both imperative programming and symbolic programming
  • High performance
  • Gluon library makes prototyping, training, and deploying models easy
  • Lightweight enough for IoT usage
  • Works well with C++

5. Microsoft Cognitive Toolkit (CNTK)

Microsoft’s offering to the machine learning community comes in the form of the Microsoft Cognitive Toolkit, more commonly referred to as CNTK. It should come as no surprise that Microsoft would like to throw their hat into this particular space.

CNTK offers developers the option to integrate with the Open Neural Network Exchange ONNX format, which is an open-source project that allows AI models to be built and shared in a standard format. PyTorch also allows this format.

However, Microsoft themselves stated they are discontinuing making their own releases on the project - so it’s up to the open source community to see if/how this project evolves.

Why CNTK?

  • Open source
  • Easy to start learning CNTK
  • Speedy processing time
  • Good for students or first-timers to pick up before moving to another framework

Conclusion

Choosing the right machine learning framework really depends on the application itself as well as what developers are most skilled in using. If you are interested in building an ML application and need the dev expertise to do it, then get in contact with us at CodeFirst. We have experienced ML developers at hand who can help achieve your project goals.