TensorFlow, friend of machine learning enthusiasts of every level, has now hit version 1.10, bringing performance improvements and lots of new endpoints amongst other things.
As per usual in more stable projects with higher release frequencies, version 1.10 of the numerical computation library has seen quite a few performance improvements. To speed up training for example, RunConfig now sets device_filters to restrict how workers and parameter servers can communicate. If such exchanges are necessary though, custom session_options can be set.
In tf.estimator.train_and_evaluate, checkpoints aren’t reloaded for evaluation, which should improve local run behaviour. Other noteworthy changes include that tf.lite is now able to handle complex 64 bit numbers, boosted trees in tf.estimator have ranking support as well as a center bias option, and public APIs for tf.contrib.data.group_by_reducer() and tf.contrib.data.choose_from_datasets() are available. Also, there’s batch normalization in the DNNClassifier, DNNRegressor, and DNNEstimator in tf.estimator now, which might come in handy.
Probably because TensorFlow was initially one of Google’s concoctions, there are ongoing efforts to make it play nicely with more of the company’s commercial products. In this release for example, developers will find initial integration for the data storage system Bigtable, which is part of the Google Cloud family. Bigtable’s client connection pool was also made configurable and now offers a higher number of default connections, which is supposed to increase performance.
Developers using Nvidia’s Collective Communications Library (NCCL) to get TensorFlow to take advantage of multiple GPUs, might have to upgrade to NCCL 2.2 if they’re interested in TF 1.10, since prebuilt binaries use this version now and no longer include NCCL.
Distributions and Bijectors have been moved from tf.contrib.distributions to TensorFlow Probability. The former has therefore been deprecated and will be removed by the end of 2018.
The TensorFlow team also points out that starting from 1.11, Windows builds will be done with Bazel. Therefore the next minor release will drop support for cmake.