TensorFlow team refines distribution strategies, releases v1.11


The TensorFlow project has hit v1.11 with C, C++, and Python functions for querying kernels and support for distributed computation, though Keras fans will face a few hiccups with the latest version of the Machine Learning library.

Those using TensorFlow’s implementation of the Keras API specification will be the only ones having to deal with breaking changes in this update. Applying model.get_config() to a sequential model for example will now – consistent with other model instances – return a config dictionary instead of a config list for the layers beneath. On top of that, default values for the initialisers for tf.keras’ Random.Uniform, RandomNormal, and TruncatedNormal have been changed to mirror those in external Keras.

On the plus side, there is now support for distributing computations amongst multiple GPUs in tf.keras with fit, evaluate, and predict available. The still experimental DistributionStrategy API has been complemented with multi-worker support in the Estimator API. The latter should now work with standalone clients as well.

Talking of processing units and Keras, users interested in that sort of thing can now test an experimental tf.data integration for Keras on Google Cloud Tensor Processing Units. There’s also a preview for eager execution on those. Developers working with Nvidia GPUs and TensorFlow will find that prebuilt binaries are now built against cuDNN 7.2 and TensorRT 4, which the install guides reflect as well.

Besides all that, there have been efforts to make working with tf.data more straightforward, renaming the BigTable class to BigtableTable for clarity, and documenting the Cloud Bigtable API. The module tf.contrib, which contains volatile or experimental code, gets a few additions as well. Examples are experimental IndexedDatasets, Tensor and DataType classes for TensorFlow Lite Java, bitcasting to and from uint32 and uint64, a GoogleZoneProvider class to detect in which Cloud Engine zone the library runs in, and optional bucket location checks for GCS filesystems. More details can be found in the release notes.

As the team already mentioned in the notes accompanying the last release, TensorFlow dropped cmake support with this version. Windows builds of the library will now be done using Bazel.

TensorFlow is an Apache-2-licensed library for numerical computation which was developed at Google. It uses data flow graphs and is popular for use cases involving Machine Learning. At the moment there are stable APIs for Python and C. There is also support for languages like C++, Go, Java, JavaScript, and Swift, although backwards compatibility for the associated programming interfaces isn’t guaranteed.