Major Features And Improvements
* The `tf.lite` runtime now supports `complex64`.
* Initial
[Google Cloud Bigtable integration](https://github.com/tensorflow/tensorflow/tree/r1.10/tensorflow/contrib/bigtable)
for `tf.data`.
* Improved local run behavior in `tf.estimator.train_and_evaluate` which does
not reload checkpoints for evaluation.
* `RunConfig` now sets device_filters to restrict how workers and PS can
communicate. This can speed up training and ensure clean shutdowns in some
situations. But if you have jobs that require communication between workers,
you will have to set custom session_options in your `RunConfig`.
* Moved Distributions and Bijectors from `tf.contrib.distributions` to
[Tensorflow Probability (TFP)](https://github.com/tensorflow/probability).
`tf.contrib.distributions` is now deprecated and will be removed by the end
of 2018.
* Adding new endpoints for existing tensorflow symbols. These endpoints are
going to be the preferred endpoints going forward and may replace some of
the existing endpoints in the future. See below for the complete list. New
symbols have been added to the following modules:
[`tf.debugging`](https://www.tensorflow.org/versions/master/api_docs/python/tf/debugging),
[`tf.dtypes`](https://www.tensorflow.org/versions/master/api_docs/python/tf/dtypes),
[`tf.image`](https://www.tensorflow.org/versions/master/api_docs/python/tf/image),
[`tf.io`](https://www.tensorflow.org/versions/master/api_docs/python/tf/io),
[`tf.linalg`](https://www.tensorflow.org/versions/master/api_docs/python/tf/linalg),
[`tf.manip`](https://www.tensorflow.org/versions/master/api_docs/python/tf/manip),
[`tf.math`](https://www.tensorflow.org/versions/master/api_docs/python/tf/math),
[`tf.quantization`](https://www.tensorflow.org/versions/master/api_docs/python/tf/quantization),
[`tf.strings`](https://www.tensorflow.org/versions/master/api_docs/python/tf/strings)
Breaking Changes
* Prebuilt binaries are now (as of TensorFlow 1.10) built against NCCL 2.2 and
no longer include NCCL in the binary install. TensorFlow usage with multiple
GPUs and NCCL requires upgrade to
[NCCL 2.2](https://developer.nvidia.com/nccl). See updated install guides:
[TensorFlow GPU support](https://www.tensorflow.org/install/gpu) and
[Build TensorFlow from source](https://www.tensorflow.org/install/source).
* Starting from TensorFlow 1.11, Windows builds will use Bazel. Therefore, we
will drop official support for cmake.
Bug Fixes and Other Changes
* `tf.data`:
* `tf.contrib.data.group_by_reducer()` is now available via the public
API.
* `tf.contrib.data.choose_from_datasets()` is now available via the public
API.
* Adding `drop_remainder` argument to `tf.data.Dataset.batch()` and
`tf.data.Dataset.padded_batch()`, deprecating
`tf.contrib.data.batch_and_drop_remainder()` and
`tf.contrib.data.padded_batch_and_drop_remainder()`.
* `tf.estimator`:
* `Estimator`s now use custom savers included in `EstimatorSpec` scaffolds
for saving SavedModels during export.
* `EstimatorSpec` will now add a default prediction output for export if
no `export_output` is provided, eliminating the need to explicitly
include a `PredictOutput` object in the `model_fn` for simple use-cases.
* Support sparse_combiner in canned Linear Estimators.
* Added batch normalization to `DNNClassifier`, `DNNRegressor`, and
`DNNEstimator`.
* Adding ranking support for boosted trees.
* Adding center bias option for boosted trees.
* Add `synchronization` and `aggregation` args to get_variable(). These args
will be used for distributed variables.
* Add `synchronization` and `aggregation` args to the layer `add_weight()`
API. These args will be used for distributed variables.
* `tf.losses.*` do not add to the global collection when executing eagerly (to
avoid leaking memory).
* Support different summary and checkpoint directories in
`tf.train.MonitoredTrainingSession()`.
* Added IndRNN, IndyGRU, and IndyLSTM cells to `tf.contrib.rnn`.
* Add safe static factory functions for SparseTensor and convert all CHECKs to
DCHECKs. Using the constructor directly is unsafe and deprecated.
* Make the Bigtable client connection pool configurable & increase the
default of connections for performance.
* Added derivative of `tf.random_gamma` with respect to the alpha parameter.
* Added derivative of `tf.igamma(a, x)` and `tf.igammac(a, x)` with respect to
a.
* Modified Bessel functions of order zero and one.
* Add FillTriangular Bijector to create triangular matrices.
* Added support for Type III DCT, and `tf.spectral.idct(type=2|3)`.
* Correctly handle CuDNN RNN weight loaded when nest in `TimeDistributed`.
* Adding per-element weight support for `WALSComputePartialLhsAndRhsOp`.
* ZerosLike and OnesLike ops treated as constants by Graph Transform Tool.
* Gamma distribution and the derived distributions (Beta, Dirichlet, Student's
t, inverse Gamma) now fully reparameterized.
* Java: Experimental wrapper classes to make graph generation easier. Thanks
karllessard and kbsriram
* Build & link in secure gRPC components (switch from the insecure grpc
dependency to secure grpc dependency).
* Adding new endpoints for existing tensorflow symbols. These endpoints are
going to be the preferred endpoints going forward and may replace some of
the existing endpoints in the future. List of new endpoints:
* New endpoints in `tf.image` namespace: `tf.image.extract_image_patches`
* New endpoints in `tf.debugging` namespace:
`tf.debugging.check_numerics`, `tf.debugging.is_finite`,
`tf.debugging.is_inf`, `tf.debugging.is_nan`.
* New endpoints in `tf.dtypes` namespace: `tf.dtypes.as_string`.
* New endpoints in `tf.io` namespace: `tf.io.decode_base64`,
`tf.io.decode_compressed`, `tf.io.decode_json_example`,
`tf.io.decode_raw`, `tf.io.encode_base64`, `tf.io.matching_files`,
`tf.io.parse_tensor`, `tf.io.read_file,`tf.io.write_file`.
* New endpoints in tf.linalg namespace: `tf.linalg.cross`,
`tf.linalg.tensor_diag` (corresponds to `tf.diag`),
`tf.linalg.tensor_diag_part` (corresponds to `tf.diag_part`).
* New endpoints in tf.manip namespace: `tf.manip.batch_to_space_nd`,
`tf.manip.gather_nd`, `tf.manip.reshape`, `tf.manip.reverse`,
`tf.manip.scatter_nd`, `tf.manip.space_to_batch_nd`, `tf.manip.tile`
* New endpoints in tf.math namespace: `tf.math.acos`, `tf.math.acosh`,
`tf.math.add`, `tf.math.asin`, `tf.math.asinh`, `tf.math.atan`,
`tf.math.atan2`, `tf.math.atanh`, `tf.math.betainc`, `tf.math.ceil`,
`tf.math.cos`, `tf.math.cosh`, `tf.math.digamma`, `tf.math.equal`,
`tf.math.erfc`, `tf.math.exp`, `tf.math.expm1`, `tf.math.floor`,
`tf.math.greater`, `tf.math.greater_equal`, `tf.math.igamma`,
`tf.math.igammac`, `tf.math.invert_permutation`, `tf.math.less`,
`tf.math.less_equal`, `tf.math.lgamma`, `tf.math.log`, `tf.math.log1p`,
`tf.math.logical_and`, `tf.math.logical_not`, `tf.math.logical_or`,
`tf.math.maximum`, `tf.math.minimum`, `tf.math.not_equal`,
`tf.math.polygamma`, `tf.math.reciprocal`, `tf.math.rint`,
`tf.math.rsqrt`, `tf.math.segment_max`, `tf.math.segment_mean`,
`tf.math.segment_min`, `tf.math.segment_prod`, `tf.math.segment_sum`,
`tf.math.sin`, `tf.math.sinh`, `tf.math.softplus`, `tf.math.softsign`,
`tf.math.squared_difference`, `tf.math.tan`,
`tf.math.unsorted_segment_max`, `tf.math.unsorted_segment_min`,
`tf.math.unsorted_segment_prod`, `tf.math.unsorted_segment_sum`,
`tf.math.zeta`.
* New endpoints in `tf.quantization` namespace:
`tf.quantization.dequantize`,
`tf.quantization.fake_quant_with_min_max_args`,
`tf.quantization.fake_quant_with_min_max_args_gradient`,
`tf.quantization.fake_quant_with_min_max_vars`,
`tf.quantization.fake_quant_with_min_max_vars_gradient`,
`tf.quantization.fake_quant_with_min_max_vars_per_channel`,
`tf.quantization.fake_quant_with_min_max_vars_per_channel_gradient`.
* New endpoints in tf.strings namespace: `tf.strings.join` (corresponds to
`tf.string_join`), `tf.strings.regex_replace`, `tf.strings.to_number`
(corresponds to `tf.string_to_number`), `tf.strings.strip` (corresponds
to `tf.string_strip`), `tf.strings.substr`, `tf.strings.to_hash_bucket`
(corresponds to `tf.string_to_hash_bucket`),
`tf.strings.to_hash_bucket_fast` (corresponds to
`tf.string_to_hash_bucket_fast`), `tf.strings.to_hash_bucket_strong`
(corresponds to `tf.string_to_hash_bucket_strong`).
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
Ag Ramesh, Alex Wiltschko, Alexander Pantyukhin, Amogh Mannekote, An Jiaoyang,
Andrei Nigmatulin, Andrew Ginns, BjøRn Moholt, Brett Koonce, Chengzhi Chen,
Chinmay Das, Christian Ertler, Christoph Boeddeker, Clayne Robison, Courtial
Florian, ctiijima, Dan Douthit, Dan J, Dan Ringwalt, EFanZh, Emanuele Ballarin,
eqy, Evgeniy Zheltonozhskiy, Freedom" Koan-Sin Tan, FréDéRic Branchaud-Charron,
G K, gracehoney, Guillaume Klein, Guozhong Zhuang, Hsien-Yang Li, hsm207,
ImSheridan, Jayaram Bobba, Jiandong Ruan, Jie, Joel Shor, Jonas Rauber, Jongmin
Baek, jsawruk, Karan Kaw, Karl Lessard, karlkubx.ca, Kb Sriram, KinmanLam,
leiiwang, Li, Yiqiang, Loo Rong Jie, Mahmoud Abuzaina, Mahmoud Aslan, ManHyuk,
Martin Patz, Martin Zeitler, mktozk, Mohammad Ashraf Bhuiyan, mrTsjolder, Naman
Bhalla, Nick Felt, Nicolas Lopez, Niranjan Hasabnis, Nishidha Panpaliya, Nitish,
nrstott, Nutti, Parag Jain, PeterLee, Philipp Jund, Rach L, Rafal Wojdyla,
Roland Zimmermann, Sergei Lebedev, SneakyFish5, Soila Kavulya, Sriram Veturi,
Steven Schmatz, Taehoon Lee, Tang, Wenyi, Taras Sereda, Ted Chang, Tim Zaman,
Tristan Rice, tucan, vchigrin, Vikram Tiwari, Vincent, WeberXie, William D.
Irons, Yan Facai (颜发才), Yong Tang, Yu Yi, Yuxin Wu, Zé ViníCius