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.

Вам не нужно использовать представление о планшете, если только вы не хотите попробовать дистрибутив.

Другие вопросы по тегам