多项分布。
继承自:Distribution
用法
tf.compat.v1.distributions.Multinomial(
total_count, logits=None, probs=None, validate_args=False, allow_nan_stats=True,
name='Multinomial'
)参数
-
total_count形状可广播到[N1,..., Nm]和m >= 0的非负浮点张量。将此定义为一批N1 x ... x Nm不同的多项分布。它的组件应该等于整数值。 -
logits浮点张量表示正事件的非归一化 log-probabilities,其形状可广播到[N1,..., Nm, K]m >= 0,并且 dtype 与total_count相同。将此定义为一批N1 x ... x Nm不同的K类多项分布。只应传入logits或probs之一。 -
probs具有可广播到[N1,..., Nm, K]m >= 0和与total_count相同 dtype 的形状的正浮点张量。将此定义为一批N1 x ... x Nm不同的K类多项分布。probs在其形状的最后部分中的组件应总和为1。只应传入logits或probs之一。 -
validate_argsPythonbool,默认False。尽管可能会降低运行时性能,但检查True分发参数的有效性时。当False无效输入可能会默默呈现不正确的输出。 -
allow_nan_statsPythonbool,默认True。当True时,统计信息(例如,均值、众数、方差)使用值“NaN”来指示结果未定义。当False时,如果一个或多个统计数据的批处理成员未定义,则会引发异常。 -
namePythonstr名称以此类创建的 Ops 为前缀。
属性
-
allow_nan_statsPythonbool说明未定义统计信息时的行为。统计数据在有意义时返回 +/- 无穷大。例如,柯西分布的方差是无穷大的。但是,有时统计数据是未定义的,例如,如果分布的 pdf 在分布的支持范围内没有达到最大值,则模式是未定义的。如果均值未定义,则根据定义,方差未定义。例如: df = 1 的 Student's T 的平均值是未定义的(没有明确的方式说它是 + 或 - 无穷大),因此方差 = E[(X - mean)**2] 也是未定义的。
-
batch_shape来自单个事件索引的单个样本的形状作为TensorShape.可能部分定义或未知。
批次维度是该分布的独立、不同参数化的索引。
-
dtypeTensor的DType由此Distribution处理。 -
event_shape单个批次的单个样品的形状作为TensorShape.可能部分定义或未知。
-
logits坐标逻辑的向量。 -
name此Distribution创建的所有操作前的名称。 -
parameters用于实例化此Distribution的参数字典。 -
probs在该坐标中绘制1的概率。 -
reparameterization_type说明如何重新参数化分布中的样本。目前这是静态实例
distributions.FULLY_REPARAMETERIZED或distributions.NOT_REPARAMETERIZED之一。 -
total_count用于构建样本的试验次数。 -
validate_argsPythonbool表示启用了可能昂贵的检查。
此多项分布由 probs 参数化,(批量)长度 - K prob(概率)向量( K > 1 )使得 tf.reduce_sum(probs, -1) = 1 和 total_count 试验次数,即多项式每次抽取的试验次数。它是在(一批)长度上定义的 - K 向量 counts 使得 tf.reduce_sum(counts, -1) = total_count 。多项式与 K = 2 时的二项式分布相同。
数学细节
多项式是在 K -类计数上的分布,即非负整数 counts = n = [n_0, ..., n_{K-1}] 的长度 - K 向量。
概率质量函数 (pmf) 是,
pmf(n; pi, N) = prod_j (pi_j)**n_j / Z
Z = (prod_j n_j!) / N!
其中:
probs = pi = [pi_0, ..., pi_{K-1}],pi_j > 0,sum_j pi_j = 1,total_count = N,N一个正整数,Z是归一化常数,并且,N!表示N阶乘。
分布参数在所有函数中自动广播;有关详细信息,请参见示例。
陷阱
类数 K 不得超过:
self.dtype可表示的最大整数,即2**(mantissa_bits+1)(IEE754),- 最大
Tensor索引,即2**31-1。
换一种说法,
K <= min(2**31-1, {
tf.float16:2**11,
tf.float32:2**24,
tf.float64:2**53 }[param.dtype])注意:此条件仅在 self.validate_args = True 时有效。
例子
创建一个 3 类分布,使用 logits 最有可能绘制 3 类分布。
logits = [-50., -43, 0]
dist = Multinomial(total_count=4., logits=logits)
创建一个 3 类分布,第 3 类最有可能被绘制。
p = [.2, .3, .5]
dist = Multinomial(total_count=4., probs=p)
分布函数可以根据计数进行评估。
# counts same shape as p.
counts = [1., 0, 3]
dist.prob(counts) # Shape []
# p will be broadcast to [[.2, .3, .5], [.2, .3, .5]] to match counts.
counts = [[1., 2, 1], [2, 2, 0]]
dist.prob(counts) # Shape [2]
# p will be broadcast to shape [5, 7, 3] to match counts.
counts = [[...]] # Shape [5, 7, 3]
dist.prob(counts) # Shape [5, 7]
创建 2 批 3 类分布。
p = [[.1, .2, .7], [.3, .3, .4]] # Shape [2, 3]
dist = Multinomial(total_count=[4., 5], probs=p)
counts = [[2., 1, 1], [3, 1, 1]]
dist.prob(counts) # Shape [2]
dist.sample(5) # Shape [5, 2, 3]
相关用法
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.quantile用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.covariance用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.variance用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.cdf用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.log_survival_function用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.cross_entropy用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.survival_function用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.log_cdf用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.kl_divergence用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.covariance用法及代码示例
- Python tf.compat.v1.distributions.Normal.log_survival_function用法及代码示例
- Python tf.compat.v1.distributions.Laplace.stddev用法及代码示例
- Python tf.compat.v1.distributions.Uniform.log_survival_function用法及代码示例
- Python tf.compat.v1.distributions.Gamma.cdf用法及代码示例
- Python tf.compat.v1.distributions.Normal.log_cdf用法及代码示例
- Python tf.compat.v1.distributions.Gamma.log_cdf用法及代码示例
- Python tf.compat.v1.distributions.Laplace.cross_entropy用法及代码示例
- Python tf.compat.v1.distributions.Dirichlet.covariance用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.distributions.Multinomial。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
