Add support for explicit broadcasting in TensorFlow (#15243)
authorYong Tang <yong.tang.github@outlook.com>
Mon, 16 Apr 2018 02:22:39 +0000 (19:22 -0700)
committerJonathan Hseu <vomjom@vomjom.net>
Mon, 16 Apr 2018 02:22:39 +0000 (19:22 -0700)
commitba1c53a5f2bb106e16ec7503dbd4d0db9ecc9799
treed7b9281a71d4a1355183d2776a1df8cb41a1e2bc
parent0586c57292a7bd1a79b4a03270c0f1c32d02a4af
Add support for explicit broadcasting in TensorFlow (#15243)

* Add support for explicit broadcasting in TensorFlow

This fix tries to adds support for explicit broadcasting in TensorFlow,
as was suggested in 14509. This fix adds the op of tf.broadcast_to,
which is equivalent to the numpy.broadcast_to in numpy.

This fix fixes 14509.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Register BroadcastTo op in array_ops.cc

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Sanitize with clang-format -i

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Add test cases for tf.broadcast_to

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Sanitize bazel BUILD and python.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Split broadcast_to_ops_test from array_ops_test

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Support int64 shape

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Improve shape inference for broadcast_to

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Add scalar input support for broadcast_to

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Update API defs tensorflow/core/api_def/update_api_def.sh

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Update API golden

```
bazel-bin/tensorflow/tools/api/tests/api_compatibility_test
           --update_goldens True
```

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Update docstring for broadcast_to

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Enable GPU kernel for BroadcastTo

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Enable use_gpu=True for test cases

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Hiden the ops and export to tf.contrib.framework for now.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Add the op to the _allowed_symbol in tf.contrib.framework

Otherwise the symbole will be hidden

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Fix pylint sanity issue.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
tensorflow/contrib/framework/__init__.py
tensorflow/core/api_def/base_api/api_def_BroadcastTo.pbtxt [new file with mode: 0644]
tensorflow/core/api_def/python_api/api_def_BroadcastTo.pbtxt [new file with mode: 0644]
tensorflow/core/kernels/BUILD
tensorflow/core/kernels/broadcast_to_op.cc [new file with mode: 0644]
tensorflow/core/kernels/broadcast_to_op.h [new file with mode: 0644]
tensorflow/core/kernels/broadcast_to_op_gpu.cu.cc [new file with mode: 0644]
tensorflow/core/ops/array_ops.cc
tensorflow/python/kernel_tests/BUILD
tensorflow/python/kernel_tests/broadcast_to_ops_test.py [new file with mode: 0644]