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


Python mxnet.symbol.op.sample_multinomial用法及代码示例


用法:

mxnet.symbol.op.sample_multinomial(data=None, shape=_Null, get_prob=_Null, dtype=_Null, name=None, attr=None, out=None, **kwargs)

参数

  • data(Symbol) - 分布概率。最后一个轴上的总和必须为 1。
  • shape(Shape(tuple), optional, default=[]) - 要从每个随机分布中采样的形状。
  • get_prob(boolean, optional, default=0) - 是否也返回采样结果的对数概率。这通常用于通过随机变量进行区分,例如在强化学习中。
  • dtype({'float16', 'float32', 'float64', 'int32', 'uint8'},optional, default='int32') - 输出的 DType,以防无法推断。
  • name(string, optional.) - 结果符号的名称。

返回

结果符号。

返回类型

Symbol

来自多个多项分布的并发采样。

data 是一个 n 维数组,其最后一维的长度为 k ,其中 k 是每个多项分布的可能结果数。此运算符将从每个分布中抽取 shape 样本。如果 shape 为空,将从每个分布中抽取一个样本。

如果get_prob 为真,则还将返回包含抽取样本的对数似然的第二个数组。这通常用于强化学习,您可以提供奖励作为该数组的头部梯度来估计梯度。

请注意,输入分布必须标准化,即 data 必须沿其最后一个轴总和为 1。

例子:

probs = [[0, 0.1, 0.2, 0.3, 0.4], [0.4, 0.3, 0.2, 0.1, 0]]

// Draw a single sample for each distribution
sample_multinomial(probs) = [3, 0]

// Draw a vector containing two samples for each distribution
sample_multinomial(probs, shape=(2)) = [[4, 2],
                                        [0, 0]]

// requests log likelihood
sample_multinomial(probs, get_prob=True) = [2, 1], [0.2, 0.3]

相关用法


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