예제 #1
0
 def testInvalidAxis(self):
     with self.assertRaisesRegexp(ValueError,
                                  r'Argument `axis` must be negative.*'):
         tfb.Cumsum(axis=0, validate_args=True)
     with self.assertRaisesRegexp(
             TypeError, r'Argument `axis` is not an `int` type\.*'):
         tfb.Cumsum(axis=-1., validate_args=True)
예제 #2
0
 def testInvalidAxis(self):
     with self.assertRaisesRegexp(ValueError,
                                  "`axis` must be a negative integer."):
         tfb.Cumsum(axis=0)
     with self.assertRaisesRegexp(ValueError,
                                  "`axis` must be a negative integer."):
         tfb.Cumsum(axis=-1.)
예제 #3
0
 def testInvalidAxis(self):
     with self.assertRaisesOpError('Argument `axis` must be negative.'):
         self.evaluate(
             tfb.Cumsum(axis=0, validate_args=True).forward([0., 1.]))
     with self.assertRaisesRegexp(
             TypeError, r'Argument `axis` is not an `int` type\..*'):
         tfb.Cumsum(axis=-1., validate_args=True)
예제 #4
0
 def testBijectiveAndFinite(self):
     bijector = tfb.Cumsum()
     x = np.linspace(-10, 10, num=10).astype(np.float32)
     y = np.cumsum(x, axis=-1)
     bijector_test_util.assert_bijective_and_finite(bijector,
                                                    x,
                                                    y,
                                                    eval_func=self.evaluate,
                                                    event_ndims=1)
예제 #5
0
    def _checkBijectorInAllDims(self, x):
        """Helper for `testBijector`."""
        x = self._build_tensor(x)
        for axis in range(-self.evaluate(tf.rank(x)), 0):
            bijector = tfb.Cumsum(axis=axis)
            self.assertStartsWith(bijector.name, "cumsum")

            y = tf.cumsum(x, axis=axis)
            self.assertAllClose(y, self.evaluate(bijector.forward(x)))
            self.assertAllClose(x, self.evaluate(bijector.inverse(y)))
예제 #6
0
  def _checkEqualTheoreticalFldj(self, x):
    """Helper for `testJacobian`."""
    event_ndims = int(self.evaluate(tf.rank(x)) - 1)
    self.assertGreaterEqual(event_ndims, 1)

    bijector = tfb.Cumsum(axis=-event_ndims)
    fldj = bijector.forward_log_det_jacobian(
        self._build_tensor(x), event_ndims=event_ndims)
    fldj_theoretical = bijector_test_util.get_fldj_theoretical(
        bijector, x, event_ndims=event_ndims)
    fldj_, fldj_theoretical_ = self.evaluate([fldj, fldj_theoretical])
    self.assertAllEqual(np.zeros_like(fldj_), fldj_)
    self.assertAllClose(np.zeros_like(fldj_theoretical_), fldj_theoretical_)
예제 #7
0
 def testInvalidAxis(self):
     with self.assertRaisesRegexp(ValueError,
                                  "`axis` needs to be negative."):
         tfb.Cumsum(axis=0)
     with self.assertRaisesRegexp(TypeError, "`axis` is not an `int`."):
         tfb.Cumsum(axis=-1.)