diff options
Diffstat (limited to 'tensorflow/python/kernel_tests/pack_op_test.py')
-rw-r--r-- | tensorflow/python/kernel_tests/pack_op_test.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tensorflow/python/kernel_tests/pack_op_test.py b/tensorflow/python/kernel_tests/pack_op_test.py new file mode 100644 index 0000000000..5f3b1823c0 --- /dev/null +++ b/tensorflow/python/kernel_tests/pack_op_test.py @@ -0,0 +1,47 @@ +"""Functional tests for Pack Op.""" +import tensorflow.python.platform + +import numpy as np +import tensorflow as tf + +from tensorflow.python.kernel_tests import gradient_checker + + +class PackOpTest(tf.test.TestCase): + + def testSimple(self): + np.random.seed(7) + for use_gpu in False, True: + with self.test_session(use_gpu=use_gpu): + for shape in (2,), (3,), (2, 3), (3, 2), (4, 3, 2): + data = np.random.randn(*shape) + # Convert [data[0], data[1], ...] separately to tensorflow + xs = map(tf.constant, data) + # Pack back into a single tensorflow tensor + c = tf.pack(xs) + self.assertAllEqual(c.eval(), data) + + def testGradients(self): + np.random.seed(7) + for use_gpu in False, True: + for shape in (2,), (3,), (2, 3), (3, 2), (4, 3, 2): + data = np.random.randn(*shape) + shapes = [shape[1:]] * shape[0] + with self.test_session(use_gpu=use_gpu): + xs = map(tf.constant, data) + c = tf.pack(xs) + err = gradient_checker.ComputeGradientError(xs, shapes, c, shape) + self.assertLess(err, 1e-6) + + def testZeroSize(self): + # Verify that pack doesn't crash for zero size inputs + for use_gpu in False, True: + with self.test_session(use_gpu=use_gpu): + for shape in (0,), (3,0), (0, 3): + x = np.zeros((2,) + shape) + p = tf.pack(list(x)).eval() + self.assertAllEqual(p, x) + + +if __name__ == "__main__": + tf.test.main() |