Beginner’s Guide to TensorFlow 2.x for Deep Learning Applications | by Orhan G. Yalçın | Towards Data Science

If you are reading this article, I am sure that we share similar interests and are/will be in similar industries. So let’s connect via Linkedin! Please do not hesitate to send a contact request! Orhan G. Yalçın — Linkedin
If you have recently started learning machine learning, you might have already realized the power of artificial neural networks and deep learning compared to traditional machine learning. Compared to other models, artificial neural networks require an extra set of technical skills and conceptual knowledge.
The most important of these technical skills is the ability to use a deep learning framework. A good deep learning framework speeds up the development process and provides efficient data processing, visualization, and deployment tools. When it comes to choosing a deep learning framework, as of 2020, you only have two viable options :
Well, we can compare TensorFlow an PyTorch for days, but this post is not about framework benchmarking. This post is about what you can achieve with TensorFlow.
TensorFlow is an end-to-end framework and platform designed to build and train machine learning models, especially deep learning models. It was developed by Google and released as an open-source platform in 2015.
The two programming languages with stable and official TensorFlow APIs are Python and C. Besides, C++, Java, JavaScript, Go, and Swift are other programming languages where developers may find limited-to-extensive TensorFlow compatibility. Most developers end up using Python since Python has compelling data libraries such as NumPy, pandas, and Matplotlib.
There are several advantages of using a powerful deep learning framework, and the non-exhaustive list below points out to some of them:
Reduced time to build and train models;
Useful data processing tools;
Compatibility with other popular data libraries such as NumPy, matplotlib, and pandas;
A rich catalog of pre-trained models with TF Hub;
Tools to deploy trained models across different devices such as iOS, Android, Windows, macOS, and Web;
Great community support;
A desirable skill by tech companies.
Currently, we are using the second major version of TensorFlow: TensorFlow 2.x. It took almost nine years to achieve this level of maturity. However, I can say that we are still in the beginning phase of the ultimate deep learning platform because the current trends indicate that deep learning processes will be much more streamlined in the future. Some claims that API based practices will be the standard way of using deep learning and artificial neural networks. But, let’s not get ahead of ourselves and take a look at the history of the TensorFlow platform:
The TensorFlow team deliberately uses the term platform since its deep learning library is just a part of the whole technology.
I — In 2011, Google Brain developed a proprietary machine learning library for internal Google use, called DistBelief. DistBelief was primarily used for Google’s core businesses, such as Google Search and Google Ads.
I — In 2015, to speed up the advancements in artificial intelligence, Google decided to release TensorFlow as an open-source library. Tensorflow Beta was released.
I — In 2016, Google announced Tensor Processing Units (TPUs). Tensors are the building bricks of TensorFlow applications, and as the name suggests, TPUs are specially designed ASICs for deep learning operations.
ASIC stands for application-specific integrated circuit. ASICs are customized for a particular use such as deep learning or cryptocurrency mining, rather than general-purpose use.
The Developments of 2017:
I — In February, TensorFlow 1.0 was released, setting a milestone. Before February 2017, TensorFlow was still in 0.x.x versions, the initial development process. In general, version 1.0.0 defines the public API with a stable production capability.Therefore, February 2017 was indeed a big milestone for TensorFlow.
I — Seeing the rapid advancements in mobile technologies, the TensorFlow team announced TensorFlow Lite, a library for machine learning development in mobile devices, in May 2017.
I — Finally, in December 2017, Google introduced KubeFlow. Kubeflow is an open-source platform that allows operation and deployment of TensorFlow models on Kubernetes. In other words, “the Machine Learning Toolkit for Kubernetes”
The Developments of 2018:
I — In March, Google announced TensorFlow.js 1.0, which enable developers to implement and serve machine learning models using JavaScript.
I — In July 2018, Google announced the Edge TPU. Edge TPU is Google’s purpose-built ASIC designed to run TensorFlow Lite machine learning (ML) models on smartphones.
The Developments of 2019:
I — In January 2019, the TensorFlow team announced the official release date for TensorFlow 2.0.0: September 2019.
I — In May 2019, TensorFlow Graphics was announced to tackle issues related to graphic rendering and 3D modeling.
I — In September 2019, the TensorFlow team released TensorFlow 2.0, the current major version, which streamlined many of the inconveniencies of building neural networks.
I — With version 2.0, TensorFlow finally embraced Keras as the official main High-level API to build, train, evaluate neural networks.
I — TensorFlow 2.0 streamlined the data loading and processing tools and provided newly added features.
I — Eager Execution was made the default option, replacing Graph execution. This strategy was adopted because PyTorch has attracted many researchers with eager execution.
With Eager execution, TensorFlow calculates the values of tensors as they occur in your code.
As you can see, TensorFlow is much more than a deep learning library for Python. It is an end-to-end platform that you can process your data, build & train machine learning models, serve the trained models across different devices with different programming languages. Below you can see the current diagram of the TensorFlow platform:
As of 2020, the real competition is taking place between TensorFlow and PyTorch. Due to its maturity, extensive support in multiple programming languages, popularity in the job market, extensive community support, and supporting technologies, TensorFlow currently has the upper hand.
In 2018, Jeff Hale developed a power ranking for the deep learning frameworks in the market. He weighs the mentions found in the online job listings, the relevant articles and the blog posts, and on GitHub. Since 2018, PyTorch has achieved an upward momentum, and I believe it must have a higher score by now. But, I believe TensorFlow still has superiority over PyTorch due to its maturity.
You have come to this point, and I hope you already developed an understanding of what TensorFlow is and how you can benefit from it. If you are convinced to learn TensorFlow, in the next posts, I will explain the topics below with actual code examples:
The very basics of TensorFlow: Tensors, Variables, and Eager Execution; and
Five major capabilities of TensorFlow 2.x that cover the entire deep learning pipeline operations.
The second post is already published:
towardsdatascience.com
And the third one:
towardsdatascience.com
You can follow my account and subscribe to my newsletter:
Subscribe Now
Over the years, TensorFlow turned into a big platform covering every need of machine learning experts from head to toe. There is still a long way to go, but we are far ahead compared to where we were ten years ago. Join the rise of this new technology and learn to implement your own deep learning models with TensorFlow's help. Don’t miss out...
Finally, if you are interested in applied deep learning tutorials, check out some of my articles: