torch.multinomial
-
torch.multinomial(input, num_samples, replacement=False, *, generator=None, out=None) → LongTensor -
Возвращает тензор, в каждой строке которого содержатся
num_samplesиндексов, выбранных из мультиномиального распределения вероятностей (более строгое определение — многомерное распределение; подробности см. вtorch.distributions.multinomial.Multinomial), заданного соответствующей строкой тензораinput.Примечание
Сумма значений в строках
inputне обязательно должна равняться единице (в этом случае значения используются как веса), но они должны быть неотрицательными, конечными, а их сумма должна быть ненулевой.Индексы упорядочены слева направо в соответствии с порядком их выбора (первые выбранные индексы помещаются в первый столбец).
Если
input— вектор,out— вектор размераnum_samples.Если
input— матрица сmстроками,out— матрица формы .Если параметр replacement равен
True, выборка производится с возвращением.В противном случае выборка производится без возвращения: выбранный для строки индекс не может быть выбран для этой строки повторно.
Примечание
При выборке без возвращения значение
num_samplesдолжно быть меньше количества ненулевых элементов вinput(или минимального количества ненулевых элементов в каждой строкеinput, если это матрица).- Параметры:
- Именованные аргументы:
-
-
generator (
torch.Generator, необязательно) – генератор псевдослучайных чисел для выборки - out (Tensor, необязательно) – выходной тензор.
-
generator (
Пример:
>>> 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, 5) # ERROR! RuntimeError: cannot sample n_sample > prob_dist.size(-1) samples without replacement >>> torch.multinomial(weights, 4, replacement=True) tensor([ 2, 1, 1, 1])
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.multinomial.html