parameters: (logu, self_normalized=False, name=None)
docstring: The forward Kullback-Leibler Csiszar-function in log-space.
  
    A Csiszar-function is a member of,
  
    ```none
    F = { f:R_+ to R : f convex }.
    ```
  
    When `self_normalized = True`, the KL-forward Csiszar-function is:
  
    ```none
    f(u) = u log(u) - (u - 1)
    ```
  
    When `self_normalized = False` the `(u - 1)` term is omitted.
  
    Observe that as an f-Divergence, this Csiszar-function implies:
  
    ```none
    D_f[p, q] = KL[p, q]
    ```
  
    The KL is "forward" because in maximum likelihood we think of minimizing `q`
    as in `KL[p, q]`.
  
    Warning: this function makes non-log-space calculations and may therefore be
    numerically unstable for `|logu| >> 0`.
  
    Args:
      logu: `float`-like `Tensor` representing `log(u)` from above.
      self_normalized: Python `bool` indicating whether `f'(u=1)=0`. When
        `f'(u=1)=0` the implied Csiszar f-Divergence remains non-negative even
        when `p, q` are unnormalized measures.
      name: Python `str` name prefixed to Ops created by this function.
  
    Returns:
      kl_forward_of_u: `float`-like `Tensor` of the Csiszar-function evaluated at
        `u = exp(logu)`.
  
    Raises:
      TypeError: if `self_normalized` is `None` or a `Tensor`.
docstring_summary: The forward Kullback-Leibler Csiszar-function in log-space.
docstring_tokens: The forward Kullback - Leibler Csiszar - function in log - space .
function: def kl_forward(logu, self_normalized=False, name=None):
    """The forward Kullback-Leibler Csiszar-function in log-space.
  
    A Csiszar-function is a member of,
  
    ```none
    F = { f:R_+ to R : f convex }.
    ```
  
    When `self_normalized = True`, the KL-forward Csiszar-function is:
  
    ```none
    f(u) = u log(u) - (u - 1)
    ```
  
    When `self_normalized = False` the `(u - 1)` term is omitted.
  
    Observe that as an f-Divergence, this Csiszar-function implies:
  
    ```none
    D_f[p, q] = KL[p, q]
    ```
  
    The KL is "forward" because in maximum likelihood we think of minimizing `q`
    as in `KL[p, q]`.
  
    Warning: this function makes non-log-space calculations and may therefore be
    numerically unstable for `|logu| >> 0`.
  
    Args:
      logu: `float`-like `Tensor` representing `log(u)` from above.
      self_normalized: Python `bool` indicating whether `f'(u=1)=0`. When
        `f'(u=1)=0` the implied Csiszar f-Divergence remains non-negative even
        when `p, q` are unnormalized measures.
      name: Python `str` name prefixed to Ops created by this function.
  
    Returns:
      kl_forward_of_u: `float`-like `Tensor` of the Csiszar-function evaluated at
        `u = exp(logu)`.
  
    Raises:
      TypeError: if `self_normalized` is `None` or a `Tensor`.
    """
  
    with ops.name_scope(name, "kl_forward", [logu]):
      return amari_alpha(logu, alpha=1., self_normalized=self_normalized)
function_tokens: def kl_forward ( logu , self_normalized = False , name = None ) : with ops . name_scope ( name , "kl_forward" , [ logu ] ) : return amari_alpha ( logu , alpha = 1. , self_normalized = self_normalized )