Python PyTorch Pyro - многомерные распределения
Как сделать выборку многомерного распределения в Pyro? Я просто хочу(M, N)
Бета-версия, но не работает следующее:
impor torch
import pyro
with pyro.plate("theta_plate", M):
theta = pyro.sample("theta",
pyro.distributions.Beta(concentration0=torch.ones(N),
concentration1=torch.ones(N)))
2 ответа
Использовать
to_event(n)
объявлять неадекватные образцы.
import torch
import pyro
import pyro.distributions as dist
def model(N, M):
with pyro.plate("theta_plate", M):
theta = pyro.sample("theta", dist.Beta(torch.ones(N),1.).to_event(1))
return theta
if __name__ == '__main__':
print(model(10,12).shape) # (10,12)
Для дистрибутивов PyTorch и Pyro синтаксис одинаковый:
import pyro.distributions as dist
samples = dist.Beta(2, 2).sample([200]) # Will draw 200 samples.
Вам не нужно использовать представление о планшете, если только вы не хотите попробовать дистрибутив.