TensorFlow is an open source framework developed by Google researchers to run machine learning, deep learning and other statistical and predictive analytics workloads. Like similar platforms, it's designed to streamline the process of developing and executing advanced analytics applications for users such as data scientists, statisticians and predictive modelers.
The TensorFlow software handles data sets that are arrayed as computational nodes in graph form. The edges that connect the nodes in a graph can represent multidimensional vectors or matrices, creating what are known as tensors. Because TensorFlow programs use a data flow architecture that works with generalized intermediate results of the computations, they are especially open to very large-scale parallel processing applications, with neural networks being a common example.
The framework includes sets of both high-level and low-level APIs. Google recommends using the high-level ones when possible to simplify data pipeline development and application programming. However, knowing how to use the low-level APIs -- called TensorFlow Core -- can be valuable for experimentation and debugging of applications, the company says; it also gives users a "mental model" of the machine learning technology's inner workings, in Google's words.
TensorFlow applications can run on either conventional CPUs or higher-performance graphics processing units (GPUs), as well as Google's own tensor processing units (TPUs), which are custom devices expressly designed to speed up TensorFlow jobs. Google's first TPUs, detailed publicly in 2016, were used internally in conjunction with TensorFlow to power some of the company's applications and online services, including its RankBrain search algorithm and Street View mapping technology.
In early 2018, Google furthered its external TensorFlow efforts by making the second generation of TPUs available to Google Cloud Platform users for training and running their own machine learning models. TensorFlow-based workloads are billed on a per-second basis; the Cloud TPU service initially was launched as a beta program with only "limited quantities" of the devices available for use, according to Google.
TensorFlow origins and releases
TensorFlow followed in the footsteps of a closed-source Google framework called DistBelief, which the company used internally to carry out unsupervised feature learning and deep learning applications based on extremely large neural networks and the backpropagation algorithm.
DistBelief, which Google first disclosed in detail in 2012, was a testbed for implementations of deep learning that included advanced image and speech recognition, natural language processing, recommendation engines and predictive analytics.
TensorFlow differs from DistBelief in a number of ways. Because TensorFlow was designed to be able to work separately from Google's own computing infrastructure, its code was more easily portable for outside uses. It's also a more general machine learning framework that isn't as tightly focused on neural networks as DistBelief was. Moreover, it's designed to support faster configuration and to run against the high-level APIs.
Google released TensorFlow as an open source technology in 2015 under an Apache 2.0 license. Since then, the framework has gained a variety of adherents beyond Google. For example, TensorFlow tooling is supported as add-on modules to machine learning and AI development suites from IBM, Microsoft and others.
In early 2017, TensorFlow reached Release 1.0.0 status. That version added a specialized debugger, a domain-specific compiler for TensorFlow graphs, Docker container images for version 3 of the Python programming language and an experimental Java API. Four more releases followed during the course of 2017; a TensorFlow Lite version optimized for use on mobile and embedded devices was also introduced as a developer preview. As of February 2018, TensorFlow was up to Release 1.6.0.
Applications of TensorFlow
For the most part, TensorFlow applications are advanced and large-scale AI undertakings in the realms of machine learning and deep learning. In powering Google's RankBrain machine learning system, TensorFlow has been employed to improve the information retrieval capabilities of the company's flagship search engine.
Google has also used the framework for applications that include automatic email response generation, image classification and optical character recognition, as well as a drug-discovery application that the company worked on with researchers from Stanford University.
Other companies listed on the TensorFlow website as users of the framework include Airbnb, Coca-Cola, eBay, Intel, Qualcomm, SAP, Twitter, Uber and Snapchat developer Snap Inc. Another user is STATS LLC, a sports consulting company that runs TensorFlow-based deep learning models to analyze things such as the movements of players during professional sports games.
TensorFlow-based deep learning has also been a part of experiments and tests involving one of the larger-scaled proposed innovations today, that is self-driving cars.
Some smaller-scale uses have been found, too. For example, a small Japanese farm uses TensorFlow to sort cucumbers based on their textures.