Пример #1
0
 def testScalarCongruency(self):
     bijector = tfb.Expm1()
     bijector_test_util.assert_scalar_congruency(bijector,
                                                 lower_x=-5.,
                                                 upper_x=2.5,
                                                 eval_func=self.evaluate,
                                                 rtol=0.15)
Пример #2
0
 def testMatchesExpm1(self):
     bijector = tfb.Expm1()
     x = np.random.randn(30)
     y = np.expm1(x)
     self.assertAllClose(y, self.evaluate(bijector.forward(x)))
     # Disable caching.
     self.assertAllClose(x, self.evaluate(bijector.inverse(tf.identity(y))))
 def disabled_testFailureCase(self):
   # TODO(b/140229057): This test should pass.
   dist = tfd.Chi(df=np.float32(27.744131))
   dist = tfd.TransformedDistribution(
       bijector=tfb.NormalCDF(), distribution=dist, batch_shape=[4])
   dist = tfb.Expm1()(dist)
   samps = 1.7182817 + tf.zeros_like(dist.sample(seed=test_util.test_seed()))
   self.assertAllClose(dist.log_prob(samps)[0], dist[0].log_prob(samps[0]))
Пример #4
0
 def disabled_testFailureCase(self):  # pylint: disable=invalid-name
   # TODO(b/140229057): This test should pass.
   dist = tfd.Chi(df=np.float32(27.744131) * np.ones((4,)).astype(np.float32))
   dist = tfd.TransformedDistribution(
       bijector=tfb.NormalCDF(), distribution=dist)
   dist = tfb.Expm1()(dist)
   samps = 1.7182817 + tf.zeros_like(dist.sample(seed=test_util.test_seed()))
   self.assertAllClose(dist.log_prob(samps)[0], dist[0].log_prob(samps[0]))
Пример #5
0
 def testBijectiveAndFinite(self):
     bijector = tfb.Expm1()
     x = np.linspace(-5, 5, num=20).astype(np.float32)
     y = np.logspace(-5, 5, num=20).astype(np.float32)
     bijector_test_util.assert_bijective_and_finite(bijector,
                                                    x,
                                                    y,
                                                    eval_func=self.evaluate,
                                                    event_ndims=0)
Пример #6
0
 def testBijector(self):
     bijector = tfb.Expm1()
     self.assertStartsWith(bijector.name, 'expm1')
     x = [[[-1.], [1.4]]]
     y = np.expm1(x)
     self.assertAllClose(y, self.evaluate(bijector.forward(x)))
     self.assertAllClose(x, self.evaluate(bijector.inverse(y)))
     self.assertAllClose(
         -np.squeeze(np.log1p(y), axis=-1),
         self.evaluate(bijector.inverse_log_det_jacobian(y, event_ndims=1)))
     self.assertAllClose(
         self.evaluate(-bijector.inverse_log_det_jacobian(np.expm1(x),
                                                          event_ndims=1)),
         self.evaluate(bijector.forward_log_det_jacobian(x, event_ndims=1)))
Пример #7
0
 def testBijectorIsInvertExpm1(self):
     x = np.linspace(0., 10., num=200)
     log1p = tfb.Log1p()
     invert_expm1 = tfb.Invert(tfb.Expm1())
     self.assertAllClose(self.evaluate(log1p.forward(x)),
                         self.evaluate(invert_expm1.forward(x)))
     self.assertAllClose(self.evaluate(log1p.inverse(x)),
                         self.evaluate(invert_expm1.inverse(x)))
     self.assertAllClose(
         self.evaluate(log1p.forward_log_det_jacobian(x, event_ndims=1)),
         self.evaluate(
             invert_expm1.forward_log_det_jacobian(x, event_ndims=1)))
     self.assertAllClose(
         self.evaluate(log1p.inverse_log_det_jacobian(x, event_ndims=1)),
         self.evaluate(
             invert_expm1.inverse_log_det_jacobian(x, event_ndims=1)))