Categorical

  • class paddle.fluid.layers.Categorical(logits)[源代码]

类别分布是一种离散概率分布,其随机变量可以取K个相互独立类别的其中一个。

概率质量函数(pmf)为:

Categorical - 图1

  • 上面公式中:
    • Categorical - 图2 表示:如果 Categorical - 图3 ,则表达式取值为1,否则取值为0。
  • 参数:
    • logits (list|numpy.ndarray|Variable) - 类别分布对应的logits。数据类型为float32。

代码示例

  1. import numpy as np
  2. from paddle.fluid import layers
  3. from paddle.fluid.layers import Categorical
  4.  
  5. a_logits_npdata = np.array([-0.602,-0.602], dtype="float32")
  6. a_logits_tensor = layers.create_tensor(dtype="float32")
  7. layers.assign(a_logits_npdata, a_logits_tensor)
  8.  
  9. b_logits_npdata = np.array([-0.102,-0.112], dtype="float32")
  10. b_logits_tensor = layers.create_tensor(dtype="float32")
  11. layers.assign(b_logits_npdata, b_logits_tensor)
  12.  
  13. a = Categorical(a_logits_tensor)
  14. b = Categorical(b_logits_tensor)
  15.  
  16. a.entropy()
  17. # [0.6931472] with shape: [1]
  18.  
  19. b.entropy()
  20. # [0.6931347] with shape: [1]
  21.  
  22. a.kl_divergence(b)
  23. # [1.2516975e-05] with shape: [1]
  • kl_divergence(other)

相对于另一个类别分布的KL散度

  • 参数:
    • other (Categorical) - 输入的另一个类别分布。数据类型为float32。

返回:相对于另一个类别分布的KL散度, 数据类型为float32

返回类型:Variable

  • entropy()

信息熵

返回:类别分布的信息熵, 数据类型为float32

返回类型:Variable