Release 1.10.0
Major Features And Improvements
- The
tf.lite
runtime now supportscomplex64
. - 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 yourRunConfig
. - 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 totf.data.Dataset.batch()
andtf.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 inEstimatorSpec
scaffolds for saving SavedModels during export. -
EstimatorSpec
will now add a default prediction output for export if noexport_output
is provided, eliminating the need to explicitly include aPredictOutput
object in themodel_fn
for simple use-cases. - Support sparse_combiner in canned Linear Estimators.
- Added batch normalization to
DNNClassifier
,DNNRegressor
, andDNNEstimator
. - Adding ranking support for boosted trees.
- Adding center bias option for boosted trees.
-
- Add
synchronization
andaggregation
args to get_variable(). These args will be used for distributed variables. - Add
synchronization
andaggregation
args to the layeradd_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)
andtf.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 totf.diag
),tf.linalg.tensor_diag_part
(corresponds totf.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 totf.string_join
),tf.strings.regex_replace
,tf.strings.to_number
(corresponds totf.string_to_number
),tf.strings.strip
(corresponds totf.string_strip
),tf.strings.substr
,tf.strings.to_hash_bucket
(corresponds totf.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`).
- New endpoints in