Spec-Zone.ru › PyTorch 1

torch.multinomial

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

Возвращает тензор, где каждая строка содержит num_samples индексы, взятые из многомерного вероятностного распределения, расположенного в соответствующей строке тензора input.

Примечание

Строки input не обязательно должны суммироваться до единицы (в этом случае мы используем значения в качестве весов), но должны быть неотрицательными, конечными и иметь ненулевую сумму.

Индексы упорядочены слева направо в соответствии с моментом их выборки (первые выборки размещаются в первом столбце).

Если input является вектором, то out — это вектор размера num_samples.

Если input является матрицей с m строками, то out является матрицей формы (m×num_samples)(m \times \text{num\_samples}).

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

Если нет, то они производятся без возвращения, что означает, что когда индекс выборки извлекается для строки, он больше не может быть извлечён для этой строки.

Примечание

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

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

Пример:

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

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.multinomial.html

Spec-Zone.ru

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