Exemplo n.º 1
0
 def testExponentialEntropy(self):
     with session.Session():
         lam_v = np.array([1.0, 4.0, 2.5])
         expected_entropy = stats.expon.entropy(scale=1 / lam_v)
         exponential = exponential_lib.Exponential(rate=lam_v)
         self.assertEqual(exponential.entropy().get_shape(), (3, ))
         self.assertAllClose(exponential.entropy().eval(), expected_entropy)
 def testExponentialMean(self):
     with session.Session():
         lam_v = np.array([1.0, 4.0, 2.5])
         expected_mean = stats.expon.mean(scale=1 / lam_v)
         exponential = exponential_lib.Exponential(lam=lam_v)
         self.assertEqual(exponential.mean().get_shape(), (3, ))
         self.assertAllClose(exponential.mean().eval(), expected_mean)
Exemplo n.º 3
0
    def testExponentialCDF(self):
        with session.Session():
            batch_size = 6
            lam = constant_op.constant([2.0] * batch_size)
            lam_v = 2.0
            x = np.array([2.5, 2.5, 4.0, 0.1, 1.0, 2.0], dtype=np.float32)

            exponential = exponential_lib.Exponential(rate=lam)
            expected_cdf = stats.expon.cdf(x, scale=1 / lam_v)

            cdf = exponential.cdf(x)
            self.assertEqual(cdf.get_shape(), (6, ))
            self.assertAllClose(cdf.eval(), expected_cdf)
Exemplo n.º 4
0
    def testExponentialSample(self):
        with self.test_session():
            lam = constant_op.constant([3.0, 4.0])
            lam_v = [3.0, 4.0]
            n = constant_op.constant(100000)
            exponential = exponential_lib.Exponential(rate=lam)

            samples = exponential.sample(n, seed=137)
            sample_values = samples.eval()
            self.assertEqual(sample_values.shape, (100000, 2))
            self.assertFalse(np.any(sample_values < 0.0))
            for i in range(2):
                self.assertLess(
                    stats.kstest(sample_values[:, i],
                                 stats.expon(scale=1.0 / lam_v[i]).cdf)[0],
                    0.01)
    def testExponentialLogPDF(self):
        with session.Session():
            batch_size = 6
            lam = constant_op.constant([2.0] * batch_size)
            lam_v = 2.0
            x = np.array([2.5, 2.5, 4.0, 0.1, 1.0, 2.0], dtype=np.float32)
            exponential = exponential_lib.Exponential(lam=lam)
            expected_log_pdf = stats.expon.logpdf(x, scale=1 / lam_v)

            log_pdf = exponential.log_pdf(x)
            self.assertEqual(log_pdf.get_shape(), (6, ))
            self.assertAllClose(log_pdf.eval(), expected_log_pdf)

            pdf = exponential.pdf(x)
            self.assertEqual(pdf.get_shape(), (6, ))
            self.assertAllClose(pdf.eval(), np.exp(expected_log_pdf))
Exemplo n.º 6
0
    def testExponentialSampleMultiDimensional(self):
        with self.test_session():
            batch_size = 2
            lam_v = [3.0, 22.0]
            lam = constant_op.constant([lam_v] * batch_size)

            exponential = exponential_lib.Exponential(rate=lam)

            n = 100000
            samples = exponential.sample(n, seed=138)
            self.assertEqual(samples.get_shape(), (n, batch_size, 2))

            sample_values = samples.eval()

            self.assertFalse(np.any(sample_values < 0.0))
            for i in range(2):
                self.assertLess(
                    stats.kstest(sample_values[:, 0, i],
                                 stats.expon(scale=1.0 / lam_v[i]).cdf)[0],
                    0.01)
                self.assertLess(
                    stats.kstest(sample_values[:, 1, i],
                                 stats.expon(scale=1.0 / lam_v[i]).cdf)[0],
                    0.01)