def testScalarCongruency(self, lower_x, upper_x):
     bijector = tfb.Reciprocal()
     bijector_test_util.assert_scalar_congruency(bijector,
                                                 lower_x=lower_x,
                                                 upper_x=upper_x,
                                                 eval_func=self.evaluate,
                                                 rtol=0.2)
 def testBijector(self, lower, upper):
   bijector = tfb.Reciprocal()
   self.assertStartsWith(bijector.name, 'reciprocal')
   x = tf.linspace(lower, upper, 100)
   y = 1. / x
   self.assertAllClose(self.evaluate(y), self.evaluate(bijector.forward(x)))
   self.assertAllClose(self.evaluate(x), self.evaluate(bijector.inverse(y)))
 def testBijectiveAndFinite(self, lower, upper):
     bijector = tfb.Reciprocal()
     x = np.linspace(lower, upper, num=100).astype(np.float32)
     y = np.linspace(lower, upper, num=100).astype(np.float32)
     bijector_test_util.assert_bijective_and_finite(bijector,
                                                    x,
                                                    y,
                                                    eval_func=self.evaluate,
                                                    event_ndims=0)
Example #4
0
 def testComposeFromChainBijector(self):
   x = tf.constant([-5., 0., 5.])
   sigmoid = functools.reduce(lambda chain, f: chain(f), [
       tfb.Reciprocal(),
       tfb.AffineScalar(shift=1.),
       tfb.Exp(),
       tfb.AffineScalar(scale=-1.),
   ])
   self.assertTrue(isinstance(sigmoid, tfb.Chain))
   self.assertAllClose(
       *self.evaluate([tf.nn.sigmoid(x), sigmoid.forward(x)]),
       atol=0, rtol=1e-3)