Tech giant Google today announced the open source release of TensorFlow, its second-generation machine learning software. Google described TensorFlow as a general, flexible, portable, easy-to-use system that builds on DistBelief, the company’s internal deep learning infrastructure developed in 2011. DistBelief has allowed users to build larger neural networks and scale training to thousands of cores in Google’s data centers.
TensorFlow is a tool for writing and executing machine learning algorithms. Computations for the system are performed in a data flow graph in which the nodes are mathematical operations and the edges are tensors, or multidimensional data arrays, that are exchanged between nodes. Users of the system construct the graphs and write the algorithms that get executed on each node, and TensorFlow executes the code asynchronously on different devices, cores, and threads.
Upgrade Over DistBelief
While successful, DistBelief also had limitations, said Jeff Dean, a Google senior fellow, and Rajat Monga, technical lead, on the company’s research blog. Targeted to neural networks, DistBelief was also considered hard to configure and closely bound to Google’s internal infrastructure, making it challenging to share research code externally. TensorFlow is designed to correct those flaws, the researchers said.
In part, the enhancements in TensorFlow make it more flexible, portable and easier to use. It also improves on DistBelief’s speed, scalability, and production readiness. In fact, TensorFlow is twice as fast as DistBelief on some benchmarks, according to the research team.
In releasing the code for the system, Google will also offer sample neural networking models and algorithms, including models for recognizing photographs, identifying handwritten numbers and analyzing text.
TensorFlow can run on desktop CPUs and GPUs, as well as on server or mobile devices. It can also be deployed to the cloud with Docker containers. The newly released open source version runs on single machines, not on clusters.
The system uses a complete Python API and C++ interface for building and executing graphs, and also includes a C-based client API. Google is expecting that open source adopters will write interfaces in other languages, the most probable being Lua, R, Java, Go and JavaScript.
Widespread Use
TensorFlow is used by Google on several of its products, including Gmail, Search, Pictures and Translate. Google wants users to see that TensorFlow is not only good for research, but it’s also ready for use in real products.
Google hasn’t been widely known for sharing important code. But the machine learning community is noted for being generous with research and discoveries, and Google presumably wants to fit into that template. Deep learning originated with academics who openly shared their ideas, some of whom, such as University of Toronto professor Geoff Hinton, now work at Google.
Google invited TensorFlow users to employ the company’s example model architectures while experimenting with it. For example, the company is planning to release its complete ImageNet computer vision model on TensorFlow soon. TensorFlow was created by the Brain Team researchers at Google and is open sourced under the Apache License 2.0.