Now Reading
Everything You Need To Know About TensorFlow 2.0 To Write Your First ML Programme

Everything You Need To Know About TensorFlow 2.0 To Write Your First ML Programme


Recently the machine learning world was presented with a better version of a framework that was wildly popular but was criticised for it complex APIs, messy collection of packages (most of which were deprecated) and loose debugging capabilities. 

TensorFlow 2.0 is aimed at gaining back the growing traction that seems to be shifting towards PyTorch among other frameworks. Now, TensorFlow’s latest version improves on its past incapabilities promising a lot to the growing community.



PyTorch, the only major competitor to TensorFlow as of today, has gained more popularity and traction in the past few months due to the flexibility that it offers in implementing complex deep learning models. 

In this article, we will look through TensorFlow, and learn what its new version brings to the designers’ plate:

The Reason Behind TensorFlow’s Popularity

A brainchild of Google, TensorFlow is arguably the most trusted and widely accepted deep learning framework for production environments. It is written in C++ and provides stable APIs for C++ and the deep learning-friendly Python. TensorFlow’s collection of tools, libraries and huge community support is a perfectly wound ecosystem that lets developers deploy ML-powered applications.

Image from Deep Learning Framework Power Scores 2018

Functionality can be an answer to the question and the fact that it is coming from Google adds to its trust and life expectancy. 

Extensive support for Python, which is the most popular and chosen language for Machine Learning, ability to run on clouds and clusters and GPU compatibility for resource-intensive tasks, ability to run models on mobile platforms like iOS and Android are all great reasons as well.

Another reason is its tight integration with another deep learning framework called Keras. 

Google’s decision to support Keras in TensorFlow’s core library was a great move that gave TensorFlow an edge over its competitors as a measure to tackle its bad reputation as a highly verbose and difficult to understand framework.

Keras provides a high-level API for multiple frameworks like TensorFlow, Microsoft Cognitive Toolkit (Preciously called CNTK), Theano and PlaidML but a major contributor to its own growing popularity is TensorFlow as Keras is mostly preferred with TensorFlow as backend. 

These are fair reasons for its popularity. Even with all these advantages, TensorFlow was lacking something that developers found in other frameworks like PyTorch. 

Drawbacks Of TensorFlow 1.x

The below graph depicts the growing demand for PyTorch. 

Image from The State of Machine Learning Frameworks in 2019

As briefly mentioned in the previous section, besides being the top adopted framework, TensorFlow had a bad reputation as a verbose framework which needs a lot of coding to successfully implement a neural network. The below code blocks compares different versions of TensorFlow.

It is less intuitive, and without proper understanding, things like debugging can get pretty messy.

TensorFlow uses static computational graph which has to be defined first before the calculations are run and for any architectural changes, the model has to be retrained.

Welcome TensorFlow 2.0

TensorFlow 2.0 is a cleaned-up version to its predecessor. We will look at some of the profound changes in this version.

Cleaned Up API’s

TensorFlow 2.0 comes with a well-structured set of libraries and packages. All deprecated libraries have been removed and tf.* namespace has been cleaned to exclude the least used packages.

Other changes include reordered arguments, renamed symbols, and changed default values for parameters. TensorFlow 2.0 also comes with v2 upgrade script that helps developers upgrade their code to V2 with less effort.

Click here for the upgrade script.

Eager execution

TensorFlow 2.0 comes with default eager execution mode. A feature that was added in version 1.4, it allows users to see the output on the go rather than wait for the whole model to be executed.

With TensorFlow 2.0, developers no longer need to enable this mode manually and provides the flexibility for easier debugging.

See Also
laml-bn

Click here to read more about Eager Execution Mode.

Keeping Track Of variables

TensorFlow 2 allows users to better track the variables created using tf.variable(). In the previous versions, the variable would remain in a graph even if the Python variable pointing to it is lost. Recovering the variable could only be done if the user could remember the name that it had been initially created with.TensorFlow 2.0 eliminates all the hassles associated with variables and their scopes.

TensorFlow functions

TensorFlow 2 allows developers to combine the graph mode and eager mode using a function decorator which can be used to create a function that runs in graph mode.

TensorFlow 2 uses tf.function() instead of sessions. tf.function() can be used to mark a Python function for JIT compilation to run it as a single graph. Portability and performance are two major benefits of graph mode.

# TensorFlow 1.X
outputs = session.run(f(placeholder), feed_dict={placeholder: input})
# TensorFlow 2.0<c/ode>
outputs = f(input) 

With Python being the most favoured language, interpreting the code in a non-Python environment is a problem. This is a concern for portability, however, with TensorFlow 2.0, the AutoGraph feature enables the conversion of a subset of Python constructs into their TensorFlow equivalent.

Other Improvements 

TensorFlow claims that with its latest version, the development of ML applications will be much easier and as close and familiar as possible for Python developers. The tight integration with Karas makes it more user-friendly and intuitive.

A standardised SavedModel file format for a variety of runtimes, such as the cloud, web browser, Node.js, mobile and embedded systems, the Distribution Strategy API to distribute training with minimal code changes and improved training performance and speed are among the top benefits of TensorFlow 2.0

Image from TensorFlow 2.0 is now available!

TensorFlow 2.0 – A Simple Regression Network

In A Nutshell

TensorFlow 2.0 addresses all most all of the issues the predecessor had, and makes it easier for developers to use. With this major upgrade, TensorFlow is again back on race hoping to regain the traction that it had lost to other frameworks mainly PyTorch.


Enjoyed this story? Join our Telegram group. And be part of an engaging community.


Provide your comments below

comments

What's Your Reaction?
Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0
Scroll To Top