tf.keras.metrics.kl_divergence
Stay organized with collections
Save and categorize content based on your preferences.
Computes Kullback-Leibler divergence loss between y_true
& y_pred
.
View aliases
Main aliases
tf.keras.losses.KLD
, tf.keras.losses.kl_divergence
, tf.keras.losses.kld
, tf.keras.losses.kullback_leibler_divergence
, tf.keras.metrics.KLD
, tf.keras.metrics.kld
, tf.keras.metrics.kullback_leibler_divergence
, tf.losses.KLD
, tf.losses.kl_divergence
, tf.losses.kld
, tf.losses.kullback_leibler_divergence
, tf.metrics.KLD
, tf.metrics.kl_divergence
, tf.metrics.kld
, tf.metrics.kullback_leibler_divergence
Compat aliases for migration
See
Migration guide for
more details.
`tf.compat.v1.keras.losses.KLD`, `tf.compat.v1.keras.losses.kl_divergence`, `tf.compat.v1.keras.losses.kld`, `tf.compat.v1.keras.losses.kullback_leibler_divergence`, `tf.compat.v1.keras.metrics.KLD`, `tf.compat.v1.keras.metrics.kl_divergence`, `tf.compat.v1.keras.metrics.kld`, `tf.compat.v1.keras.metrics.kullback_leibler_divergence`
tf.keras.metrics.kl_divergence(
y_true, y_pred
)
loss = y_true * log(y_true / y_pred)
See: https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
Standalone usage:
y_true = np.random.randint(0, 2, size=(2, 3)).astype(np.float64)
y_pred = np.random.random(size=(2, 3))
loss = tf.keras.losses.kullback_leibler_divergence(y_true, y_pred)
assert loss.shape == (2,)
y_true = tf.keras.backend.clip(y_true, 1e-7, 1)
y_pred = tf.keras.backend.clip(y_pred, 1e-7, 1)
assert np.array_equal(
loss.numpy(), np.sum(y_true * np.log(y_true / y_pred), axis=-1))
Args |
y_true
|
Tensor of true targets.
|
y_pred
|
Tensor of predicted targets.
|
Returns |
A Tensor with loss.
|
Raises |
TypeError
|
If y_true cannot be cast to the y_pred.dtype .
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2023-10-06 UTC.
[null,null,["Last updated 2023-10-06 UTC."],[],[],null,["# tf.keras.metrics.kl_divergence\n\n\u003cbr /\u003e\n\n|-------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/keras-team/keras/tree/v2.13.1/keras/losses.py#L2614-L2657) |\n\nComputes Kullback-Leibler divergence loss between `y_true` \\& `y_pred`.\n\n#### View aliases\n\n\n**Main aliases**\n\n[`tf.keras.losses.KLD`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.keras.losses.kl_divergence`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.keras.losses.kld`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.keras.losses.kullback_leibler_divergence`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.keras.metrics.KLD`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.keras.metrics.kld`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.keras.metrics.kullback_leibler_divergence`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.losses.KLD`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.losses.kl_divergence`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.losses.kld`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.losses.kullback_leibler_divergence`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.metrics.KLD`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.metrics.kl_divergence`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.metrics.kld`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence), [`tf.metrics.kullback_leibler_divergence`](https://www.tensorflow.org/api_docs/python/tf/keras/metrics/kl_divergence)\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n\\`tf.compat.v1.keras.losses.KLD\\`, \\`tf.compat.v1.keras.losses.kl_divergence\\`, \\`tf.compat.v1.keras.losses.kld\\`, \\`tf.compat.v1.keras.losses.kullback_leibler_divergence\\`, \\`tf.compat.v1.keras.metrics.KLD\\`, \\`tf.compat.v1.keras.metrics.kl_divergence\\`, \\`tf.compat.v1.keras.metrics.kld\\`, \\`tf.compat.v1.keras.metrics.kullback_leibler_divergence\\`\n\n\u003cbr /\u003e\n\n tf.keras.metrics.kl_divergence(\n y_true, y_pred\n )\n\n`loss = y_true * log(y_true / y_pred)`\n\nSee: \u003chttps://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence\u003e\n\n#### Standalone usage:\n\n y_true = np.random.randint(0, 2, size=(2, 3)).astype(np.float64)\n y_pred = np.random.random(size=(2, 3))\n loss = tf.keras.losses.kullback_leibler_divergence(y_true, y_pred)\n assert loss.shape == (2,)\n y_true = tf.keras.backend.clip(y_true, 1e-7, 1)\n y_pred = tf.keras.backend.clip(y_pred, 1e-7, 1)\n assert np.array_equal(\n loss.numpy(), np.sum(y_true * np.log(y_true / y_pred), axis=-1))\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------|------------------------------|\n| `y_true` | Tensor of true targets. |\n| `y_pred` | Tensor of predicted targets. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Tensor` with loss. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|-------------|---------------------------------------------------|\n| `TypeError` | If `y_true` cannot be cast to the `y_pred.dtype`. |\n\n\u003cbr /\u003e"]]