Esempio n. 1
0
 def testVariableAssertsScale(self):
     scale = tf.Variable(1.)
     b = tfb.RayleighCDF(scale=scale, validate_args=True)
     self.evaluate([scale.initializer])
     with self.assertRaisesOpError('Argument `scale` must be positive.'):
         with tf.control_dependencies([scale.assign(-1.)]):
             self.evaluate(b.forward(3.))
Esempio n. 2
0
 def testBijectiveAndFinite(self):
     bijector = tfb.RayleighCDF(scale=20., validate_args=True)
     x = np.linspace(1., 8., num=10).astype(np.float32)
     y = np.linspace(-np.expm1(-1 / 400.), -np.expm1(-16),
                     num=10).astype(np.float32)
     bijector_test_util.assert_bijective_and_finite(bijector,
                                                    x,
                                                    y,
                                                    eval_func=self.evaluate,
                                                    event_ndims=0,
                                                    rtol=1e-3)
Esempio n. 3
0
 def testBijector(self):
     scale = 50.
     bijector = tfb.RayleighCDF(scale=scale, validate_args=True)
     self.assertStartsWith(bijector.name, 'rayleigh')
     test_cdf_func = scipy_stats.rayleigh.cdf
     x = np.array([[[.1], [1.], [14.], [20.], [100.]]], dtype=np.float32)
     y = test_cdf_func(x, scale=scale).astype(np.float32)
     self.assertAllClose(y, self.evaluate(bijector.forward(x)))
     self.assertAllClose(x, self.evaluate(bijector.inverse(y)))
     self.assertAllClose(
         scipy_stats.rayleigh.logpdf(x, scale=scale),
         self.evaluate(bijector.forward_log_det_jacobian(x, event_ndims=0)))
     self.assertAllClose(
         self.evaluate(
             -bijector.inverse_log_det_jacobian(y, event_ndims=0)),
         self.evaluate(bijector.forward_log_det_jacobian(x, event_ndims=0)),
         rtol=1e-4,
         atol=0.)
Esempio n. 4
0
 def testAsserts(self):
     with self.assertRaisesOpError('Argument `scale` must be positive.'):
         b = tfb.RayleighCDF(scale=-1., validate_args=True)
         self.evaluate(b.forward(3.))
Esempio n. 5
0
 def testScalarCongruency(self):
     bijector_test_util.assert_scalar_congruency(tfb.RayleighCDF(scale=50.),
                                                 lower_x=1.,
                                                 upper_x=100.,
                                                 eval_func=self.evaluate,
                                                 rtol=0.05)
Esempio n. 6
0
 def testBijectorLogDetJacobianZeroAtZero(self):
     scale = np.logspace(0.1, 10., num=20).astype(np.float32)
     bijector = tfb.RayleighCDF(scale)
     fldj = self.evaluate(
         bijector.forward_log_det_jacobian(0., event_ndims=0))
     self.assertAllNegativeInf(fldj)