阅读(12.6k) 书签 (0)

TensorFlow 计算Monte Carlo或Shannon熵的确定性

2018-08-30 15:55 更新

tf.contrib.bayesflow.entropy.entropy_shannon

entropy_shannon (  
    p ,  
    z = None ,  
    n = None ,  
    seed = None ,  
    form = None ,  
    name = 'entropy_shannon' 
)

定义在:tensorflow/contrib/bayesflow/python/ops/entropy_impl.py

参见指南:贝叶斯熵(contrib)>操作

蒙特卡罗或香农熵的确定性计算.

根据 kwarg form,该操作返回分布的分析熵 p 或采样熵:

- n ^ { - 1 } sum_ {i = 1 }^n p.log_prob( z_i ), where z_i 〜 p ,  
    \approx- E_p [Log[ p(Z)]] 
    =Entropy[p]

用户提供的任何一个样本 z 张量, 或一定数量的样本来绘制 n.

ARGS:

  • p: tf.contrib.distributions.Distribution
  • z:Tensor 样品来自 p,由 p.sample(n) 某些产生 n.
  • n:整数 Tensor.如果未提供 z, 则生成的样本数.
  • seed:Python 整数用来寻找随机数生成器.
  • form:要么 ELBOForms. analytic_entropy (使用公式熵的 q) 或 ELBOForms. sample (熵的抽样估计),或 ELBOForms. default (尝试分析熵, 在样本上返回).默认值为 ELBOForms.default.
  • name:给该操作的一个名字.

返回:

与 p 相同的 dtype 的张量,并且形状等于 p. batch_shape.

举:

  • ValueError:如果 form 没有由这个函数处理.
  • ValueError:如果 form 是 ELBOForms. analytic_entropy 和 n 被提供.