Функция poisson
Функция poisson создает тензор, заполненный случайными числами, взятыми из распределения Пуассона. Первым параметром функция принимает тензор input, который содержит значения параметра λ (лямбда) для каждого элемента. Каждое значение λ определяет среднее и дисперсию распределения Пуассона для соответствующего элемента выходного тензора. Функция возвращает новый тензор, каждый элемент которого является случайной величиной, распределенной по закону Пуассона со своим параметром λ.
Синтаксис
torch.poisson(input, generator=None)
Параметр input - тензор, содержащий значения λ для распределения Пуассона. Эти значения должны быть неотрицательными. Параметр generator - необязательный объект генератора случайных чисел, который можно использовать для управления случайностью.
Пример
Давайте создадим тензор из значений λ и сгенерируем из них значения распределения Пуассона:
import torch
torch.manual_seed(0)
lam = torch.tensor([1.0, 2.0, 3.0])
t = torch.poisson(lam)
print(t)
Результат выполнения кода:
tensor([0., 3., 2.])
Пример
Теперь рассмотрим генерацию для двумерного тензора значений λ:
import torch
torch.manual_seed(1)
lam = torch.tensor([
[0.5, 1.5],
[2.5, 3.5]
])
t = torch.poisson(lam)
print(t)
Результат выполнения кода:
tensor([
[1., 1.],
[1., 4.]
])
Пример
Поскольку все значения λ должны быть неотрицательными, функция poisson возвращает тензор того же размера, что и input. Создадим тензор λ с разными значениями и посмотрим на результат:
import torch
torch.manual_seed(2)
lam = torch.tensor([0.0, 1.0, 5.0, 10.0])
t = torch.poisson(lam)
print(t)
Результат выполнения кода:
tensor([ 0., 0., 7., 10.])
Пример
Если необходимо сгенерировать несколько выборок для одних и тех же значений λ, можно использовать функцию несколько раз:
import torch
torch.manual_seed(3)
lam = torch.tensor([2.0, 2.0, 2.0])
t1 = torch.poisson(lam)
t2 = torch.poisson(lam)
print("Первая выборка:", t1)
print("Вторая выборка:", t2)
Результат выполнения кода:
"Первая выборка: tensor([2., 3., 2.])"
"Вторая выборка: tensor([2., 0., 3.])"
Смотрите также
-
функцию
rand,
которая генерирует тензор со случайными числами из равномерного распределения на интервале [0, 1) -
функцию
randn,
которая создает тензор со случайными числами из стандартного нормального распределения -
функцию
randint,
которая генерирует случайные целые числа из заданного диапазона -
функцию
bernoulli,
которая создает тензор со случайными числами из распределения Бернулли