Release 1.10.0
Major Features And Improvements
- The
tf.lite
runtime now supports complex64
.
- Initial Bigtable integration 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). 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
, tf.dtypes
, tf.image
, tf.io
, tf.linalg
, tf.manip
, tf.math
, tf.quantization
, 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. See updated install guides: Installing TensorFlow on Ubuntu and Install TensorFlow from Sources.
- 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, [email protected], 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