aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2018-01-10 15:38:44 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-01-10 15:42:47 -0800
commitb977ebeca140189b02ba003f9a456d86c34459cd (patch)
tree383d9d684e4a4a980ee0bd3527cac51bfd9fc638
parent65e18e8e78c9f83d5f8e784eff9d13359b81448e (diff)
Improved performance of tf.image.rgb_to_grayscale. Roughly 4 times faster on CPU and 10% faster on GPU.
PiperOrigin-RevId: 181528321
-rw-r--r--tensorflow/python/ops/image_ops_impl.py6
1 files changed, 2 insertions, 4 deletions
diff --git a/tensorflow/python/ops/image_ops_impl.py b/tensorflow/python/ops/image_ops_impl.py
index 9bebffd8d6..7d69e8fab3 100644
--- a/tensorflow/python/ops/image_ops_impl.py
+++ b/tensorflow/python/ops/image_ops_impl.py
@@ -1140,10 +1140,8 @@ def rgb_to_grayscale(images, name=None):
# Reference for converting between RGB and grayscale.
# https://en.wikipedia.org/wiki/Luma_%28video%29
rgb_weights = [0.2989, 0.5870, 0.1140]
- rank_1 = array_ops.expand_dims(array_ops.rank(images) - 1, 0)
- gray_float = math_ops.reduce_sum(
- flt_image * rgb_weights, rank_1, keepdims=True)
- gray_float.set_shape(images.get_shape()[:-1].concatenate([1]))
+ gray_float = math_ops.tensordot(flt_image, rgb_weights, [-1, -1])
+ gray_float = array_ops.expand_dims(gray_float, -1)
return convert_image_dtype(gray_float, orig_dtype, name=name)