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.
Subscribe to our Newsletter
Join our editors every weekday evening as they steer you through the most significant news of the day, introduce you to fresh perspectives, and provide unexpected moments of joy
Your newsletter subscriptions are subject to AIM Privacy Policy and Terms and Conditions.
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.

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.

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.
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

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.