Skip to content

TensorFlow 1.1.0

Choose a tag to compare
@av8ramit av8ramit released this 26 Apr 22:25
· 13 commits to r1.1 since this release

Release 1.1.0

Major Features and Improvements

  • Added Java API support for Windows.
  • Added tf.spectral module. Moved existing FFT ops to tf.spectral while
    keeping an alias in the old location (tf.*).
  • Added 1D, 2D and 3D Fourier transform ops for real signals to tf.spectral.
  • Added a tf.bincount function.
  • Added Keras 2 API to contrib.
  • Added a new lightweight queue-like object - RecordInput.
  • Added tf.contrib.image.compose_transforms function.
  • Bring tf.estimator.* into the API. Non-deprecated functionality from tf.contrib.learn.Estimator is moved to tf.estimator.Estimator with cosmetic changes.
  • Docker images: TF images on and Docker Hub are upgraded to ubuntu:16.04.
  • Added the following features to TensorFlow Debugger (tfdbg):
    • Ability to inspect Python source file against TF ops and tensors (command print_source / ps)
    • New navigation bar in Curses-based UI
    • NodeStepper (command invoke_stepper) now uses intermediate tensor dumps. It also uses TensorHandles as direct feeds during successive cont calls for improved performance and reduced memory consumption.
  • Initial release of installation guides for Java, C, and Go.
  • Added Text Dashboard to TensorBoard.


  • TensorFlow 1.1.0 will be the last time we release a binary with Mac GPU support. Going forward, we will stop testing on Mac GPU systems. We continue to welcome patches that maintain Mac GPU support, and we will try to keep the Mac GPU build working.

Changes to contrib APIs

  • The behavior of RNNCells is now stricter due to the transition towards making RNNCells act more like Keras layers.
    • If an RNNCell is used twice in two different variable scopes, an error is raised describing how to avoid this behavior.
    • If an RNNCell is used in a variable scope with existing conflicting variables, an error is raised showing that the RNNCell must be constructed with argument reuse=True.
  • Deprecated contrib/distributions pmf, pdf, log_pmf, log_pdf.
  • Moved bayesflow.special_math to distributions.
  • tf.contrib.tensor_forest.python.tensor_forest.RandomForestDeviceAssigner removed.
  • Changed some MVN classes and parameters:
    • tf.contrib.distributions.MultivariateNormalFull replaced by tf.contrib.distributions.MultivariateNormalTriL.
    • tf.contrib.distributions.MultivariateNormalCholesky replaced by tf.contrib.distributions.MultivariateNormalTriL
    • tf.contrib.distributions.MultivariateNormalDiagWithSoftplusStDev replaced
      by tf.contrib.distributions.MultivariateNormalDiagWithSoftplusScale
    • tf.contrib.distributions.MultivariateNormalDiag arguments changed from mu, diag_stddev to log, scale_diag.
    • tf.contrib.distributions.MultivariateNormalDiagPlusVDVT removed.
    • tf.contrib.distributions.MultivariateNormalDiagPlusLowRank added.

Bug Fixes and Other Changes

  • Java: Support for loading models exported using the SavedModel API (courtesy @EronWright).
  • Go: Added support for incremental graph execution.
  • Fix a bug in the WALS solver when single-threaded.
  • Added support for integer sparse feature values in tf.contrib.layers.sparse_column_with_keys.
  • Fixed tf.set_random_seed(0) to be deterministic for all ops.
  • Stability improvements for the GCS file system support.
  • Improved TensorForest performance.
  • Added support for multiple filename globs in tf.matching_files.
  • LogMessage now includes a timestamp as beginning of a message.
  • Added MultiBox person detector example standalone binary.
  • Android demo: Makefile build functionality added to build.gradle to fully support building TensorFlow demo in Android on Windows.
  • Android demo: read MultiBox priors from txt file rather than protobuf.
  • Added colocation constraints to StagingArea.
  • sparse_matmul_op reenabled for Android builds.
  • Restrict weights rank to be the same as the broadcast target, to avoid ambiguity on broadcast rules.
  • Upgraded libxsmm to 1.7.1 and applied other changes for performance and memory usage.
  • Fixed bfloat16 integration of LIBXSMM sparse mat-mul.
  • Improved performance and reduce memory usage by allowing ops to forward input buffers to output buffers and perform computations in-place.
  • Improved the performance of CPU assignment for strings.
  • Speed up matrix * vector multiplication and matrix * matrix with unknown shapes.
  • C API: Graph imports now support input remapping, control dependencies, and returning imported nodes (see TF_GraphImportGraphDefWithReturnOutputs())
  • Multiple C++ API updates.
  • Multiple TensorBoard updates including:
    • Users can now view image summaries at various sampled steps (instead of just the last step).
    • Bugs involving switching runs as well as the image dashboard are fixed.
    • Removed data download links from TensorBoard.
    • TensorBoard uses a relative data directory, for easier embedding.
    • TensorBoard automatically ignores outliers for domain calculation, and formats proportional values consistently.
  • Multiple tfdbg bug fixes:
    • Fixed Windows compatibility issues.
    • Command history now persists across runs.
    • Bug fix in graph validation related to tf.while_loops.
  • Java Maven fixes for bugs with Windows installation.
  • Backport fixes and improvements from external keras.
  • Keras config file handling fix.

Thanks to our Contributors

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

A. Besir Kurtulmus, Adal Chiriliuc, @akash, Alec-Desouza, Alex Rothberg, Alex
Sergeev, Alexander Heinecke, Allen Guo, Andreas Madsen, Ankesh Anand, Anton
Loss, @aravind, @Arie, Ashutosh Das, AuréLien Geron, Bairen Yi, @bakunyo, Ben
Visser, Brady Zhou, Calpa Liu, Changming Sun, Chih Cheng Liang, Christopher
Berner, Clark Zinzow, @Conchylicultor, Dan Ellis, Dan J, Dan Jarvis, Daniel
Ylitalo, Darren Garvey, David Norman, David Truong, @DavidNorman, Dimitar
Pavlov, Dmitry Persiyanov, @eddie, @elirex, Erfan Noury, Eron Wright, Evgeny
Mazovetskiy, Fabrizio (Misto) Milo, @fanlu, Fisher Coder, Florian Courtial,
Franck Dernoncourt, Gagan Goel, Gao, Xiang, @Gautam, Gefu Tang, @guilherme,
@guschmue, Hannah Provenza, Hans Pabst, @hartb, Hsiao Yi, Huazuo Gao, Igor
ChorążEwicz, Ivan Smirnov, Jakub Kolodziejczyk, Jason Gavris, Jason Morton, Jay
Young, Jayaram Bobba, Jeremy Sawruk, Jiaming Liu, Jihun Choi, @jiqiu, Joan Thibault,
John C F, Jojy George Varghese, Jon Malmaud, Julian Berman, Julian Niedermeier,
Junpeng Lao, Kai Sasaki, @Kankroc, Karl Lessard, Kyle Bostelmann, @lezcano, Li
Yi, Luo Yun, @lurker, Mahmoud-Abuzaina, Mandeep Singh, Marek Kolodziej, Mark
Szepieniec, Martial Hue, Medhat Omr, Memo Akten, Michael Gharbi, MichaëL Defferrard,
Milan Straka, @MircoT, @mlucool, Muammar Ibn Faisal, Nayana Thorat, @nghiattran,
Nicholas Connor, Nikolaas Steenbergen, Niraj Patel, Niranjan Hasabnis, @panmari,
Pavel Bulanov, Philip Pries Henningsen, Philipp Jund, @polonez, Prayag Verma, Rahul
Kavi, Raphael Gontijo Lopes, @rasbt, Raven Iqqe, Reid Pryzant, Richard Shin, Rizwan
Asif, Russell Kaplan, Ryo Asakura, RüDiger Busche, Saisai Shao, Sam Abrahams, @sanosay,
Sean Papay, @SeaOtterMan, @selay01, Shaurya Sharma, Sriram Narayanamoorthy, Stefano
Probst, @taknevski, @tbonza, @teldridge11, Tim Anglade, Tomas Reimers, Tomer Gafner,
Valentin Iovene, Vamsi Sripathi, Viktor Malyi, Vit Stepanovs, Vivek Rane, Vlad Firoiu,
@wangg12, @will, Xiaoyu Tao, Yaroslav Bulatov, Yi Liu, Yuan (Terry) Tang, @yufeng,
Yuming Wang, Yuxin Wu, Zafar Takhirov, Ziming Dong

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