mindspore.ops.multinomial_with_replacement

mindspore.ops.multinomial_with_replacement(x, seed, offset, numsamples, replacement=False)[源代码]

返回一个Tensor,其中每行包含从重复采样的多项式分布中抽取的 numsamples 个索引。与 Multinomial 不同, MultinomialWithReplacement 允许多次选择相同的结果。

说明

输入的行不需要求和为1(在这种情况下,使用值作为权重),但必须是非负的、有限的,并且具有非零和。

参数:
  • x (Tensor) - 包含概率的累积和的输入Tensor,必须为一维或二维。

  • seed (int) - 如果将随机种子设置为-1,并将 offset 设置为0,则随机数生成器将使用随机种子进行种植。否则,将使用给定的随机数种子。支持的dtype:int64。

  • offset (int) - 为避免种子冲突设置的偏移量。支持的dtype:int64。

  • numsamples (int) - 抽取样本量,必须大于零。

  • replacement (bool,可选) - 是否有放回地抽取。默认值: False

返回:

Tensor,具有与输入 x 有相同的行。每行的采样索引数为 numsamples

异常:
  • TypeError - 如果 x 不是1D或2DTensor。

  • TypeError - 如果 x 数据类型不是float16、float32或float64。

  • TypeError - 如果 num_sample 不是int类型。

  • TypeError - 如果 replacement bool类型。

  • ValueError - 如果 replacement 为False的时候, numsamples 的值不大于x_shape[-1]。

  • ValueError - 如果 x 某一行元素的和小于零。

  • ValueError - 如果 x 每一行都存在小于零的值。

  • ValueError - 如果 numsamples 小于等于0。

支持平台:

CPU

样例:

>>> from mindspore import Tensor, ops
>>> from mindspore import dtype as mstype
>>> x = Tensor([[0., 9., 4., 0.]], mstype.float32)
>>> output = ops.multinomial_with_replacement(x, 2, 5, 2, True)
>>> print(output)
[[1 1]]