Spec-Zone.ru › PyTorch 2.14

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 — матрица формы (m×num_samples)(m \times \text{num\_samples}).

Если параметр replacement равен True, выборка производится с возвращением.

В противном случае выборка производится без возвращения: выбранный для строки индекс не может быть выбран для этой строки повторно.

Примечание

При выборке без возвращения значение num_samples должно быть меньше количества ненулевых элементов в input (или минимального количества ненулевых элементов в каждой строке input, если это матрица).

Параметры:
  • input (Tensor) – входной тензор, содержащий вероятности
  • num_samples (int) – количество выбираемых элементов
  • replacement (bool, необязательно) – выполнять ли выборку с возвращением
Именованные аргументы:
  • generator (torch.Generator, необязательно) – генератор псевдослучайных чисел для выборки
  • out (Tensor, необязательно) – выходной тензор.

Пример:

>>> 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API