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


Python PyTorch multinomial用法及代码示例


本文简要介绍python语言中 torch.multinomial 的用法。

用法:

torch.multinomial(input, num_samples, replacement=False, *, generator=None, out=None) → LongTensor

参数

  • input(Tensor) -包含概率的输入张量

  • num_samples(int) -要抽取的样本数

  • replacement(bool,可选的) -是否用替换绘制

关键字参数

  • generator(torch.Generator, 可选的) -用于采样的伪随机数发生器

  • out(Tensor,可选的) -输出张量。

返回一个张量,其中每行包含从位于张量 input 的相应行中的多项概率分布中采样的 num_samples 索引。

注意

input 的行不需要总和为 1(在这种情况下,我们将值用作权重),但必须是非负的、有限的并且总和非零。

索引根据每个采样的时间从左到右排序(第一个样本放在第一列)。

如果 input 是向量,则 out 是大小为 num_samples 的向量。

如果 input 是具有 m 行的矩阵,则 out 是形状为 的矩阵。

如果替换是 True ,则使用替换抽取样本。

如果不是,它们将在不替换的情况下绘制,这意味着当为一行绘制样本索引时,不能为该行再次绘制它。

注意

在不替换的情况下绘制时,num_samples 必须小于 input 中非零元素的数量(如果是矩阵,则为 input 每行中非零元素的最小数量)。

例子:

>>> weights = torch.tensor([0, 10, 3, 0], dtype=torch.float) # create a tensor of weights
>>> torch.multinomial(weights, 2)
tensor([1, 2])
>>> torch.multinomial(weights, 4) # ERROR!
RuntimeError: invalid argument 2: invalid multinomial distribution (with replacement=False,
not enough non-negative category to sample) at ../aten/src/TH/generic/THTensorRandom.cpp:320
>>> torch.multinomial(weights, 4, replacement=True)
tensor([ 2,  1,  1,  1])

相关用法


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