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)
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)