tf.math.lbeta

TensorFlow 1 version View source on GitHub

Computes \(ln(|Beta(x)|)\), reducing along the last dimension.

tf.math.lbeta(
    x, name=None
)

Given one-dimensional $z = [z_1,...,z_K]$, we define

$$Beta(z) = \frac{\prod_j \Gamma(z_j)}{\Gamma(\sum_j z_j)},$$

where $\Gamma$ is the gamma function.

And for $n + 1$ dimensional $x$ with shape $[N_1, ..., N_n, K]$, we define

$$lbeta(x)[i_1, ..., i_n] = \log{|Beta(x[i_1, ..., i_n, :])|}.$$

In other words, the last dimension is treated as the $z$ vector.

Note that if $z = [u, v]$, then

$$Beta(z) = \frac{\Gamma(u)\Gamma(v)}{\Gamma(u + v)} = \int_0^1 t^{u-1} (1 - t)^{v-1} \mathrm{d}t,$$

which defines the traditional bivariate beta function.

If the last dimension is empty, we follow the convention that the sum over the empty set is zero, and the product is one.

Args:

  • x: A rank n + 1 Tensor, n >= 0 with type float, or double.
  • name: A name for the operation (optional).

Returns:

The logarithm of \(|Beta(x)|\) reducing along the last dimension.