当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python tf.keras.metrics.kl_divergence用法及代码示例

计算 y_truey_pred 之间的 Kullback-Leibler 散度损失。

用法

tf.keras.metrics.kl_divergence(
    y_true, y_pred
)

参数

  • y_true 真实目标的张量。
  • y_pred 预测目标的张量。

返回

  • 有损失的Tensor

抛出

  • TypeError 如果 y_true 不能转换为 y_pred.dtype

loss = y_true * log(y_true / y_pred)

看:https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence

单机使用:

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))

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.metrics.kl_divergence。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。