Beispiel #1
0
 def _default_event_space_bijector(self):
     # TODO(b/145620027) Finalize choice of bijector.
     cholesky_bijector = correlation_cholesky_bijector.CorrelationCholesky(
         validate_args=self.validate_args)
     if self.input_output_cholesky:
         return cholesky_bijector
     return chain_bijector.Chain([
         cholesky_outer_product_bijector.CholeskyOuterProduct(
             validate_args=self.validate_args), cholesky_bijector
     ],
                                 validate_args=self.validate_args)
Beispiel #2
0
  def _default_event_space_bijector(self):
    # TODO(b/145620027) Finalize choice of bijector.
    cholesky_bijector = correlation_cholesky_bijector.CorrelationCholesky(
        validate_args=self.validate_args)

    if self.input_output_cholesky:
      return cholesky_bijector
    return chain_bijector.Chain([
        # We need to explictly clip the output of this bijector because the
        # other two bijectors sometimes return values that exceed the bounds by
        # an epsilon due to minute numerical errors. Even numerically stable
        # algorithms (which the other two bijectors employ) allow for symmetric
        # errors about the true value, which is inappropriate for a one-sided
        # validity constraint associated with correlation matrices.
        _ClipByValue(-1., tf.ones([], self.dtype)),
        cholesky_outer_product_bijector.CholeskyOuterProduct(
            validate_args=self.validate_args),
        cholesky_bijector
    ], validate_args=self.validate_args)
Beispiel #3
0
 def _default_event_space_bijector(self):
   return correlation_cholesky_bijector.CorrelationCholesky(
       validate_args=self.validate_args)