TensorFlow: v1.0.0-alpha Release

Release date:
January 10, 2017
Previous version:
Could not determine previous release version
Magnitude:
52,313 Diff Delta
Contributors:
56 total committers
Data confidence:
Commits:

68 Features Released with v1.0.0-alpha

Top Contributors in v1.0.0-alpha

tensorflower-gardener
langmore
xiejw
jvdillon
ebrevdo
asimshankar
jart
martinwicke
caisq
fchollet

Directory Browser for v1.0.0-alpha

We couldn't find a release before this one

Release Notes Published

Major Features and Improvements

  • TensorFlow Debugger (tfdbg): command-line interface and API.
  • New python 3 docker images added.
  • Made pip packages pypi compliant. TensorFlow can now be installed by pip install tensorflow command.
  • Android: person detection + tracking demo implementing Scalable Object Detection using Deep Neural Networks.
  • Android: pre-built libs are now built nightly.
  • New (experimental) Java API.

Breaking Changes to the API

  • TensorFlow/models have been moved to a separate github repository.
  • Division and modulus operators (/, //, %) now match Python (flooring) semantics. This applies to tf.div and tf.mod as well. To obtain forced integer truncation based behaviors you can use tf.truncatediv and tf.truncatemod.
  • tf.divide() is now the recommended division function. tf.div() will remain, but its semantics do not respond to Python 3 or from future mechanisms.
  • tf.reverse() now takes indices of axes to be reversed. E.g. tf.reverse(a, [True, False, True]) must now be written as tf.reverse(a, [0, 2]). tf.reverse_v2() will remain until 1.0 final.
  • tf.mul, tf.sub and tf.neg are deprecated in favor of tf.multiply, tf.subtract and tf.negative.
  • tf.pack and tf.unpack are deprecated in favor of tf.stack and tf.unstack.
  • TensorArray.pack and TensorArray.unpack are getting deprecated in favor of TensorArray.stack and TensorArray.unstack.
  • The following Python functions have had their arguments changed to use axis when referring to specific dimensions. We have kept the old keyword arguments for compatibility currently, but we will be removing them well before the final 1.0.
    • tf.argmax: dimension becomes axis
    • tf.argmin: dimension becomes axis
    • tf.count_nonzero: reduction_indices becomes axis
    • tf.expand_dims: dim becomes axis
    • tf.reduce_all: reduction_indices becomes axis
    • tf.reduce_any: reduction_indices becomes axis
    • tf.reduce_join: reduction_indices becomes axis
    • tf.reduce_logsumexp: reduction_indices becomes axis
    • tf.reduce_max: reduction_indices becomes axis
    • tf.reduce_mean: reduction_indices becomes axis
    • tf.reduce_min: reduction_indices becomes axis
    • tf.reduce_prod: reduction_indices becomes axis
    • tf.reduce_sum: reduction_indices becomes axis
    • tf.reverse_sequence: batch_dim becomes batch_axis, seq_dim becomes seq_axis
    • tf.sparse_concat: concat_dim becomes axis
    • tf.sparse_reduce_sum: reduction_axes becomes axis
    • tf.sparse_reduce_sum_sparse: reduction_axes becomes axis
    • tf.sparse_split: split_dim becomes axis
  • tf.listdiff has been renamed to tf.setdiff1d to match NumPy naming.
  • tf.inv has been renamed to be tf.reciprocal (component-wise reciprocal) to avoid confusion with np.inv which is matrix inversion
  • tf.round now uses banker's rounding (round to even) semantics to match NumPy.
  • tf.split now takes arguments in a reversed order and with different keywords. In particular, we now match NumPy order as tf.split(value, num_or_size_splits, axis).
  • tf.sparse_split now takes arguments in reversed order and with different keywords. In particular we now match NumPy order as tf.sparse_split(sp_input, num_split, axis). NOTE: we have temporarily made tf.sparse_split require keyword arguments.
  • Deprecated tf.concat operator. Please switch to use tf.concat_v2 for now. In the Beta release, we will update tf.concat to match argument order of tf.concat_v2.
  • tf.image.decode_jpeg by default uses the faster DCT method, sacrificing a little fidelity for improved speed. One can revert to the old behavior by specifying the attribute dct_method='INTEGER_ACCURATE'.
  • tf.complex_abs has been removed from the Python interface. tf.abs supports complex tensors and should be used instead.
  • Template.var_scope property renamed to .variable_scope
  • SyncReplicasOptimizer is removed and SyncReplicasOptimizerV2 renamed to SyncReplicasOptimizer.
  • tf.zeros_initializer() and tf.ones_initializer() now return a callable that must be called with initializer arguments, in your code replace tf.zeros_initializer with tf.zeros_initializer().
  • SparseTensor.shape has been renamed to SparseTensor.dense_shape. Same for SparseTensorValue.shape.
  • Remove old tf summary ops, like tf.scalar_summary and tf.histogram_summary. Use tf.summary.scalar and tf.summary.histogram instead.
  • Remove tf.train.SummaryWriter and tf.train.SummaryWriterCache.
  • Removes RegisterShape from public API. Use C++ shape function registration instead.
  • Deprecated _ref dtypes from the python API.

Bug Fixes and Other Changes

  • New op: parallel_stack.
  • Introducing common tf io compression options constants for RecordReader/RecordWriter.
  • Add sparse_column_with_vocabulary_file, to specify a feature column that transform string features to IDs, where the mapping is defined by a vocabulary file.
  • Added index_to_string_table which returns a lookup table that maps indices to strings.
  • Add string_to_index_table, which returns a lookup table that matches strings to indices.
  • Add a ParallelForWithWorkerId function.
  • Add string_to_index_table, which returns a lookup table that matches strings to indices.
  • Support restore session from checkpoint files in v2 in contrib/session_bundle.
  • Added a tf.contrib.image.rotate function for arbitrary angles.
  • Added tf.contrib.framework.filter_variables as a convenience function to filter lists of variables based on regular expressions.
  • Remove old tf summary ops, like tf.scalar_summary and tf.histogram_summary. Use tf.summary.scalar and tf.summary.histogram instead.
  • make_template() takes an optional custom_getter_ param.
  • Added comment about how existing directories are handled by recursive_create_dir.
  • Added an op for QR factorizations.
  • Divides and mods in Python API now use flooring (Python) semantics.
  • Android: cmake/gradle build for TensorFlow Inference library under contrib/android/cmake
  • Android: Much more robust Session initialization code.
  • Android: TF stats now exposed directly in demo and log when debug mode is active
  • Android: new/better README.md documentation

Thanks to our Contributors

This release contains contributions from many people at Google, as well as:

Aaron Hu, Abhishek Aggarwal, Adam Michael, Adriano Carmezim, @AfirSraftGarrier, Alexander Novikov, Alexander Rosenberg Johansen, Andrew Gibiansky, Andrew Hundt, Anish Shah, Anton Loss, @b0noI, @BoyuanJiang, Carl Thomรฉ, Chad Kennedy, Comic Chang, Connor Braa, Daniel N. Lang, Daniel Trebbien, @danielgordon10, Darcy Liu, Darren Garvey, Dmitri Lapin, Eron Wright, Evan Cofer, Fabrizio Milo, Finbarr Timbers, Franck Dernoncourt, Garrett Smith, @guschmue, Hao Wei, Henrik Holst, Huazuo Gao, @Ian, @Issac, Jacob Israel, Jangsoo Park, Jin Kim, Jingtian Peng, John Pope, Kye Bostelmann, Liangliang He, Ling Zhang, Luheng He, Luke Iwanski, @lvli, Michael Basilyan, Mihir Patel, Mikalai Drabovich, Morten Just, @newge, Nick Butlin, Nishant Shukla, Pengfei Ni, Przemyslaw Tredak, @rasbt, @Ronny, Rudolf Rosa, @RustingSword, Sam Abrahams, Sam Putnam, @SeongAhJo, Shi Jiaxin, @skavulya, Steffen MรผLler, @TheUSER123, @tiriplicamihai, @vhasanov, Victor Costan, Vit Stepanovs, Wangda Tan, Wenjian Huang, Xingdong Zuo, Yaroslav Bulatov, Yota Toyama, Yuan (Terry) Tang, Yuxin Wu

We are also grateful to all who filed issues or helped resolve them, asked and answered questions, and were part of inspiring discussions.