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. a_logits_npdata = np.array([-0.602,-0.602], dtype="float32")
  5. a_logits_tensor = layers.create_tensor(dtype="float32")
  6. layers.assign(a_logits_npdata, a_logits_tensor)
  7. b_logits_npdata = np.array([-0.102,-0.112], dtype="float32")
  8. b_logits_tensor = layers.create_tensor(dtype="float32")
  9. layers.assign(b_logits_npdata, b_logits_tensor)
  10. a = Categorical(a_logits_tensor)
  11. b = Categorical(b_logits_tensor)
  12. a.entropy()
  13. # [0.6931472] with shape: [1]
  14. b.entropy()
  15. # [0.6931347] with shape: [1]
  16. a.kl_divergence(b)
  17. # [1.2516975e-05] with shape: [1]

kl_divergence(other)

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

参数

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

返回

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

返回类型

Variable

entropy()

信息熵

返回

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

返回类型

Variable