[TF:XLA] Always return a tuple-shaped result when converting a TensorFlow graph into an XLA computation. Previously we had special case logic where the number of outputs was 1 to avoid the tuple, but this meant that any code that wanted to reason about the outputs had to have a special case. By using tuples unconditionally we can simplify the code.

Since loop conditions must be untupled, wrap loop condition computations with code that unpacks the output tuple into a PRED value.

[XLA:CPU] Use CallInliner pass on CPU to work around wrong output bug exposed by this change. Add a unit test that exhibits the bug if the CallInliner is disabled.

PiperOrigin-RevId: 169333679
12 files changed
tree: 359035ba31b4bb9f6e375c63c766ae41a8976cb6
  1. tensorflow/
  2. third_party/
  3. tools/
  4. util/
  5. .gitignore
  6. ACKNOWLEDGMENTS
  7. ADOPTERS.md
  8. arm_compiler.BUILD
  9. AUTHORS
  10. BUILD
  11. CODE_OF_CONDUCT.md
  12. CODEOWNERS
  13. configure
  14. configure.py
  15. CONTRIBUTING.md
  16. ISSUE_TEMPLATE.md
  17. LICENSE
  18. models.BUILD
  19. README.md
  20. RELEASE.md
  21. WORKSPACE
README.md

Linux CPULinux GPUMac OS CPUWindows CPUAndroid
Build StatusBuild StatusBuild StatusBuild StatusBuild Status

TensorFlow is an open source software library for numerical computation using data flow graphs. The graph nodes represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) that flow between them. This flexible architecture lets you deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device without rewriting code. TensorFlow also includes TensorBoard, a data visualization toolkit.

TensorFlow was originally developed by researchers and engineers working on the Google Brain team within Google's Machine Intelligence Research organization for the purposes of conducting machine learning and deep neural networks research. The system is general enough to be applicable in a wide variety of other domains, as well.

If you want to contribute to TensorFlow, be sure to review the contribution guidelines. This project adheres to TensorFlow's code of conduct. By participating, you are expected to uphold this code.

We use GitHub issues for tracking requests and bugs. So please see TensorFlow Discuss for general questions and discussion, and please direct specific questions to Stack Overflow.

Installation

See Installing TensorFlow for instructions on how to install our release binaries or how to build from source.

People who are a little more adventurous can also try our nightly binaries:

Nightly pip packages

  • We are pleased to announce that TensorFlow now offers nightly pip packages under the tf-nightly project on pypi. Simply run pip install tf-nightly in a clean environment to install the nightly tensorflow build. We currently only support CPU-only packages on Linux and Mac. GPU packages on all platforms and Windows CPU-only packages will arrive soon!

Individual whl files

Try your first TensorFlow program

$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
'Hello, TensorFlow!'
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a + b)
42
>>> sess.close()

For more information

Learn more about the TensorFlow community at the community page of tensorflow.org for a few ways to participate.

License

Apache License 2.0