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является матрицей формы .Если replacement равно
True, выборки производятся с возвращением.Если нет, то они производятся без возвращения, что означает, что когда индекс выборки извлекается для строки, он больше не может быть извлечён для этой строки.
Примечание
При выборке без возвращения,
num_samplesдолжен быть меньше количества ненулевых элементов вinput(или минимального количества ненулевых элементов в каждой строкеinputесли это матрица).- Параметры:
- Ключевые аргументы:
-
-
generator (
torch.Generator, optional) – генератор псевдослучайных чисел для выборки - out (Тензор, необязательно) – выходной тензор.
-
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, 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