From 3451a5903f0a9da380ff1510745741add4e916fa Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Wed, 11 May 2016 12:01:11 -0800 Subject: [PATCH] Bayesflow: ensure Gaussian assertion of sigma positivity is executed; add test. Change: 122084052 --- .../distributions/python/kernel_tests/gaussian_test.py | 10 ++++++++++ .../contrib/distributions/python/ops/gaussian.py | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tensorflow/contrib/distributions/python/kernel_tests/gaussian_test.py b/tensorflow/contrib/distributions/python/kernel_tests/gaussian_test.py index 9cbf5f1e3aa..f0a82df901c 100644 --- a/tensorflow/contrib/distributions/python/kernel_tests/gaussian_test.py +++ b/tensorflow/contrib/distributions/python/kernel_tests/gaussian_test.py @@ -127,5 +127,15 @@ class GaussianTest(tf.test.TestCase): self.assertAllClose(sample_values[:, 0, 1].mean(), mu_v[1], atol=1e-2) self.assertAllClose(sample_values[:, 0, 1].std(), sigma_v[1], atol=1e-1) + def testNegativeSigmaFails(self): + with tf.Session(): + gaussian = tf.contrib.distributions.Gaussian( + mu=[1.], + sigma=[-5.], + name='G') + with self.assertRaisesOpError( + r'should contain only positive values'): + gaussian.mean.eval() + if __name__ == '__main__': tf.test.main() diff --git a/tensorflow/contrib/distributions/python/ops/gaussian.py b/tensorflow/contrib/distributions/python/ops/gaussian.py index 8c7cd80d0fe..fef1e232894 100644 --- a/tensorflow/contrib/distributions/python/ops/gaussian.py +++ b/tensorflow/contrib/distributions/python/ops/gaussian.py @@ -103,8 +103,8 @@ class Gaussian(object): mu = ops.convert_to_tensor(mu) sigma = ops.convert_to_tensor(sigma) with ops.control_dependencies([_assert_all_positive(sigma)]): - self._mu = mu - self._sigma = sigma + self._mu = array_ops.identity(mu, name="mu") + self._sigma = array_ops.identity(sigma, name="sigma") contrib_tensor_util.assert_same_float_dtype((mu, sigma))