aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/python/grappler
diff options
context:
space:
mode:
authorGravatar Yao Zhang <yaozhang@google.com>2018-02-14 19:35:36 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-02-14 19:39:43 -0800
commit5436148058543e50383a19db3ad1cd8b20889dcc (patch)
tree4ed70765205e570af4f412d564aa46145a4434bd /tensorflow/python/grappler
parentc71f331ae3f96a7a849da6b5901d42a695173b7f (diff)
Fix a bug to update reduction axes for all supported cases. Turn off layout
optimizer for all reference runs, as it is on by default now. PiperOrigin-RevId: 185782777
Diffstat (limited to 'tensorflow/python/grappler')
-rw-r--r--tensorflow/python/grappler/layout_optimizer_test.py128
1 files changed, 93 insertions, 35 deletions
diff --git a/tensorflow/python/grappler/layout_optimizer_test.py b/tensorflow/python/grappler/layout_optimizer_test.py
index b04bbb0daa..0f51501740 100644
--- a/tensorflow/python/grappler/layout_optimizer_test.py
+++ b/tensorflow/python/grappler/layout_optimizer_test.py
@@ -256,7 +256,7 @@ class LayoutOptimizerTest(test.TestCase):
x = random_ops.truncated_normal([1, 784], seed=0)
output = _two_layer_model(x)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -293,7 +293,7 @@ class LayoutOptimizerTest(test.TestCase):
add = bn0[0] + bn1[0]
output = array_ops.identity(add)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={dim: 3})
with session.Session(config=_get_config()) as sess:
@@ -325,7 +325,7 @@ class LayoutOptimizerTest(test.TestCase):
value=conv, size_splits=sizes, axis=dim, num_split=3)
output = math_ops.reduce_sum(split[0])
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={dim: 3})
with session.Session(config=_get_config()) as sess:
@@ -359,7 +359,7 @@ class LayoutOptimizerTest(test.TestCase):
pad = array_ops.pad(conv, paddings)
output = array_ops.identity(pad)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -390,7 +390,7 @@ class LayoutOptimizerTest(test.TestCase):
reduce_sum = math_ops.reduce_sum(conv)
output = array_ops.identity(reduce_sum)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -419,7 +419,7 @@ class LayoutOptimizerTest(test.TestCase):
cast = math_ops.cast(conv, dtype='bool')
output = array_ops.identity(cast)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -450,7 +450,7 @@ class LayoutOptimizerTest(test.TestCase):
squeeze = array_ops.squeeze(reduce_sum)
output = array_ops.identity(squeeze)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -480,7 +480,7 @@ class LayoutOptimizerTest(test.TestCase):
squeeze = array_ops.squeeze(reduce_sum, axis=[1, 2])
output = array_ops.identity(squeeze)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -510,7 +510,7 @@ class LayoutOptimizerTest(test.TestCase):
squeeze = array_ops.squeeze(reduce_sum, axis=[0, 1, 2])
output = array_ops.identity(squeeze)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -539,7 +539,7 @@ class LayoutOptimizerTest(test.TestCase):
reduce_sum = math_ops.reduce_sum(conv, axis=[1, 2, 3])
output = array_ops.identity(reduce_sum)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -568,7 +568,7 @@ class LayoutOptimizerTest(test.TestCase):
reduce_sum = math_ops.reduce_sum(conv, axis=[0, 1, 2])
output = array_ops.identity(reduce_sum)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -597,7 +597,7 @@ class LayoutOptimizerTest(test.TestCase):
reduce_sum = math_ops.reduce_sum(conv, axis=[3])
output = array_ops.identity(reduce_sum)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -626,7 +626,7 @@ class LayoutOptimizerTest(test.TestCase):
reduce_sum = math_ops.reduce_sum(conv, axis=[3], keep_dims=True)
output = array_ops.identity(reduce_sum)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -648,6 +648,64 @@ class LayoutOptimizerTest(test.TestCase):
self._assert_trans_nchw_to_nhwc('Sum-0-0', nodes)
self.assertAllClose(output_val_ref, output_val, atol=1e-3)
+ def testReduceSumAlongHKeepDims(self):
+ if test.is_gpu_available(cuda_only=True):
+ random_seed.set_random_seed(0)
+ x = random_ops.truncated_normal([1, 784], seed=0)
+ conv = _two_layer_model(x)
+ reduce_sum = math_ops.reduce_sum(conv, axis=[2], keep_dims=True)
+ output = array_ops.identity(reduce_sum)
+
+ with session.Session(config=_get_config(False)) as sess:
+ output_val_ref = sess.run(output)
+
+ with session.Session(config=_get_config()) as sess:
+ metadata = config_pb2.RunMetadata()
+ output_val = sess.run(output, run_metadata=metadata)
+
+ nodes = []
+ num_transposes = 0
+ for node in metadata.cost_graph.node:
+ if _is_transpose(node.name):
+ num_transposes += 1
+ nodes.append(node.name)
+
+ # Four transposes were initially added in the Expand phase of
+ # LayoutOptimizer; two of them are cancelled out in the Collapse phase.
+ expected_num_transposes = 2
+ self.assertEqual(expected_num_transposes, num_transposes)
+ self._assert_trans_nhwc_to_nchw('Conv2D-0', nodes)
+ self.assertAllClose(output_val_ref, output_val, atol=1e-3)
+
+ def testReduceSumAlongWCKeepDims(self):
+ if test.is_gpu_available(cuda_only=True):
+ random_seed.set_random_seed(0)
+ x = random_ops.truncated_normal([1, 784], seed=0)
+ conv = _two_layer_model(x)
+ reduce_sum = math_ops.reduce_sum(conv, axis=[2, 3], keep_dims=True)
+ output = array_ops.identity(reduce_sum)
+
+ with session.Session(config=_get_config(False)) as sess:
+ output_val_ref = sess.run(output)
+
+ with session.Session(config=_get_config()) as sess:
+ metadata = config_pb2.RunMetadata()
+ output_val = sess.run(output, run_metadata=metadata)
+
+ nodes = []
+ num_transposes = 0
+ for node in metadata.cost_graph.node:
+ if _is_transpose(node.name):
+ num_transposes += 1
+ nodes.append(node.name)
+
+ # Four transposes were initially added in the Expand phase of
+ # LayoutOptimizer; two of them are cancelled out in the Collapse phase.
+ expected_num_transposes = 2
+ self.assertEqual(expected_num_transposes, num_transposes)
+ self._assert_trans_nhwc_to_nchw('Conv2D-0', nodes)
+ self.assertAllClose(output_val_ref, output_val, atol=1e-3)
+
def testConcatWithControlDependency(self):
if test.is_gpu_available(cuda_only=True):
random_seed.set_random_seed(0)
@@ -660,7 +718,7 @@ class LayoutOptimizerTest(test.TestCase):
concat = array_ops.concat([conv, conv], axis)
output = array_ops.identity(concat)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -694,7 +752,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(fill)
x_val = [3.4] * 784
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={x: x_val})
with session.Session(config=_get_config()) as sess:
@@ -736,7 +794,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(tile)
multiple_val = [2, 3, 4, 1]
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={multiple: multiple_val})
with session.Session(config=_get_config()) as sess:
@@ -771,7 +829,7 @@ class LayoutOptimizerTest(test.TestCase):
reverse = array_ops.reverse(conv, dims)
output = array_ops.identity(reverse)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -804,7 +862,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(reverse)
dims_val = [2, 3]
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={dims: dims_val})
with session.Session(config=_get_config()) as sess:
@@ -841,7 +899,7 @@ class LayoutOptimizerTest(test.TestCase):
select = gen_math_ops._select(condition, conv, add)
output = array_ops.identity(select)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -872,7 +930,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(select)
condition_val = np.zeros((1, 7, 7, 64))
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={condition: condition_val})
with session.Session(config=_get_config()) as sess:
@@ -902,7 +960,7 @@ class LayoutOptimizerTest(test.TestCase):
select = gen_math_ops._select(condition, conv, add)
output = array_ops.identity(select)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -932,7 +990,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(pad)
paddings_val = [[1, 2], [3, 4], [5, 6], [7, 8]]
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={paddings: paddings_val})
with session.Session(config=_get_config()) as sess:
@@ -969,7 +1027,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(max_pool)
strides_val = [1, 3, 2, 1]
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={strides: strides_val})
with session.Session(config=_get_config()) as sess:
@@ -1006,7 +1064,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(max_pool_grad)
strides_val = [1, 3, 2, 1]
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={strides: strides_val})
with session.Session(config=_get_config()) as sess:
@@ -1041,7 +1099,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(s)
size_val = [1, 2, 3, 4]
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={size: size_val})
with session.Session(config=_get_config()) as sess:
@@ -1077,7 +1135,7 @@ class LayoutOptimizerTest(test.TestCase):
output = array_ops.identity(s)
end_val = [1, 2, 3, 4]
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={end: end_val})
with session.Session(config=_get_config()) as sess:
@@ -1115,7 +1173,7 @@ class LayoutOptimizerTest(test.TestCase):
s = conv[:, :, 1:-1, :]
output = array_ops.identity(s)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -1150,7 +1208,7 @@ class LayoutOptimizerTest(test.TestCase):
s = conv[:, :, :, 1:-1]
output = array_ops.identity(s)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -1189,7 +1247,7 @@ class LayoutOptimizerTest(test.TestCase):
[1, 2, 3, 1], s)
output = array_ops.identity(s_grad)
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={end: end_val})
with session.Session(config=_get_config()) as sess:
@@ -1225,7 +1283,7 @@ class LayoutOptimizerTest(test.TestCase):
output = math_ops.add(shapen[0], shapen[1])
x_val = [1.7] * 784
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={x: x_val})
with session.Session(config=_get_config()) as sess:
@@ -1259,7 +1317,7 @@ class LayoutOptimizerTest(test.TestCase):
output = math_ops.add_n([conv_reshape, ones])
x_val = [1.7] * 784
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output, feed_dict={x: x_val})
with session.Session(config=_get_config()) as sess:
@@ -1283,7 +1341,7 @@ class LayoutOptimizerTest(test.TestCase):
if test.is_gpu_available(cuda_only=True):
output = _loop()
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -1310,7 +1368,7 @@ class LayoutOptimizerTest(test.TestCase):
if test.is_gpu_available(cuda_only=True):
output = _loop_with_branch()
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -1334,7 +1392,7 @@ class LayoutOptimizerTest(test.TestCase):
if test.is_gpu_available(cuda_only=True):
output = _loop_with_vec_and_4d()
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess:
@@ -1358,7 +1416,7 @@ class LayoutOptimizerTest(test.TestCase):
if test.is_gpu_available(cuda_only=True):
output = _model_with_second_port()
- with session.Session() as sess:
+ with session.Session(config=_get_config(False)) as sess:
output_val_ref = sess.run(output)
with session.Session(config=_get_config()) as sess: