TensorFlow was originally a deep learning research project of the Google Brain Team that has since become–by way of collaboration with 50 teams at Google…
A new, open source library deployed across the Google ecosystem, including Google Assistant, Google Photos, Gmail, search, and more. With TensorFlow in place, Google is able to apply deep learning across numerous areas using perceptual and language-understanding tasks. (Note: This article about TensorFlow is also available as a free PDF download.)
This cheat sheet is an easy way to get up to speed on TensorFlow. We’ll update this guide periodically when news and updates about TensorFlow are released.
- What is TensorFlow? Google has the single greatest machine learning infrastructure in the world, and with TensorFlow, Google now has the ability to share that. TensorFlow is an open source library of tools that enable software developers to apply deep learning to their products.
- Why does TensorFlow matter? AI has become crucial to the evolution of how users interact with services and devices. Having such a powerful set of libraries available can enable developers to include this powerful deep learning evolution to their products.
- Who does TensorFlow affect? TensorFlow will have a lasting effect on developers and users. Since the library was made open source, it is available to all developers, which means their products can be significantly enhanced to bring a higher level of intelligence and accuracy to their products.
- When was TensorFlow released? TensorFlow was originally released November 9, 2015, and the stable release was made available on February 15, 2017. Google has now released TensorFlow 2.4, which includes a number of new features and profiler tools.
- How do I start using TensorFlow? Developers can download the source code from the TensorFlow GitHub repository. Users are already seeing its effects in the Google ecosystem.
What is TensorFlow?
When you have a photo of the Eiffel Tower, Google Photos can identify the image. This is possible thanks to deep learning and developments like TensorFlow. Prior to TensorFlow there was a division between the researchers of machine learning and those developing real products; that division made it challenging for developers to include deep learning in their software. With TensorFlow, that division is gone.
TensorFlow delivers a set of modules (providing for both Python and C/C++ APIs) that enable constructing and executing TensorFlow computations, which are then expressed in stateful data flow graphs. These graphs make it possible for applications like Google Photos to become incredibly accurate at recognizing locations in images based on popular landmarks.
In 2011, Google developed a product called DistBelief that worked on the positive reinforcement model. The machine would be given a picture of a cat and asked if it was a picture of a cat. If the machine guessed correctly, it was told so. An incorrect guess would lead to an adjustment so that it could better recognize the image.
TensorFlow improves on this concept by sorting through layers of data called Nodes. Diving deeper into the layers would allow for more and complex questions about an image. For example, a first-layer question might simply require the machine to recognize a round shape. In deeper layers, the machine might be asked to recognize a cat’s eye. The flow process (from input, through the layers of data, to output) is called a tensor…hence the name TensorFlow.
What is TensorFlow 2.0?
Google is in the process of rolling out TensorFlow 2.0, which includes the following improvements:
- Helps make API components integrate better with tf.keras (a high-level interface for neural networks that runs on top of multiple backends).
- Includes TensorFlow Federated, which is an open source framework for experimenting with machine learning (and other computations) using decentralized data.
- Includes TF Privacy, a library for training machine learning models with a focus on privacy for training data.
- Features eager execution, which is an imperative programming environment that evaluates operations immediately, without building graphs before returning concrete values.
- Uses tf.function, which allows you to transform a subset of Python syntax into portable, high-performance graphs, and improves performance and deployability of eager execution.
- Advanced experimentation will be made possible with new extensions Ragged Tensors (the TensorFlow equivalent of nested variable-length lists), TensorFlow Probability (a Python library built on TensorFlow that makes it easy to combine probabilistic models and deep learning), and Tensor2Tensor (a library of deep learning models and datasets).
- A conversion tool that automatically updates TensorFlow 1.x Python code so that it can be used with TensorFlow 2.0 compatible APIs (and flags cases where said code cannot be automatically converted).
Why does TensorFlow matter?
Machine learning is the secret sauce for tomorrow’s innovation. Machine learning, also called deep learning, is considered a class of algorithms that:
- Use many layers of nonlinear processing units for feature extraction and transformation; and
- are based on the learning of multiple levels of features or representations of the data; and
- learn multiple levels of representation corresponding to different levels of abstraction.
Thanks to machine learning, software and devices continue to become smarter. With today’s demanding consumers and the rise of big data, this evolution has become tantamount to the success of a developer and their product. And because TensorFlow was made open source, it means anyone can make use of this incredible leap forward brought to life by Google. In fact, TensorFlow is the first serious framework for deep learning to be made available through the Apache 2.0 license.
With developers and companies able to use the TensorFlow libraries, more and more applications and devices will become smarter, faster, and more reliable. TensorFlow will be able to sort through vast numbers of images at an unprecedented rate.
Because Google made TensorFlow open source, the libraries can be both improved upon and expanded into other languages such as Java, Lua, and R. This move brings machine learning (something heretofore only available to research institutes) to every developer, so they can teach their systems and software to recognize images or translate speech. That’s big.
Who does TensorFlow affect?
TensorFlow not only makes it possible for developers to include the spoils of deep learning into their products, but it makes devices and software significantly more intelligent and easier to use. In our modern, mobile, and 24/7 connected world, that means everyone is affected. Software designers, developers, small businesses, enterprises, and consumers are all affected by the end result of deep learning. The fact that Google created a software library that dramatically improves deep learning is a big win for all.
When was TensorFlow released?
TensorFlow was originally released November 9, 2015, and the stable release was made available on February 15, 2017. TensorFlow 2.0 alpha is available now, with the public preview coming soon. You can learn more about the TensorFlow 2.0 alpha in the official Get Started with TensorFlow guide.
The libraries, APIs, and development guides are available now, so developers can begin to include TensorFlow into their products. Users are already seeing the results of TensorFlow in the likes of Google Photos, Gmail, Google Search, Google Assistant, and more.
What new features are found in TensorFlow 2.4?
Among the new features found in the latest release of TensorFlow include:
- The tf.distribute module now includes experimental support for asynchronous training models with ParameterServerStrategy and custom training loops. In order to get started with this strategy, read through this Parameter Server Training tutorial, which demonstrates how to setup ParameterServerStrategy.
- MultiWorkerMirroredStrategy is now a part of the stable API and implements distributed training with synchronous data parallelism.
- The Karas mixed precision API is now part of the stable API and allows for the user of 16-bit and 32-bit floating point types.
- The tf.keras.optimizers.Optimizer has been refactors, enabling the user of model.fit or custom training loops to write code that will work with any optimizer.
- The experimental support of a NumPy API subset, tf.experimental.numpy, has been introduced which enables developers to run TensorFlow accelerated NumPy code.
- New profiler tools have been added so developers can measure the training performance and resource consumption of TensorFlow models.
- TensorFlow now runs with CUDA 11 and cuDNN 8, which enables support for NVIDIA Ampere GPU architecture.
Competitors to TensorFlow
TensorFlow isn’t alone in the deep learning field; in fact, there are a number of other companies with machine learning frameworks, including the following.
How do I start using TensorFlow?
The first thing any developer should do is read the TensorFlow Getting Started guide, which includes a TensorFlow Core Tutorial. If you’re new to machine learning, make sure to check out the following guides:
Finally, developers can take advantage of all the TensorFlow guides: