Выборка из совместного распределения в Пиро

Я понимаю, как сделать выборку из многомерного категориального или многомерного нормального (с зависимостью в каждом столбце). Например, для многовариантной категории это можно сделать следующим образом:

import pyro as p
import pyro.distributions as d
import torch as t
p.sample("obs1", d.Categorical(logits=logit_pobs1).independent(1), obs=t.t(obs1))

У меня вопрос, как мы можем сделать то же самое, если есть несколько дистрибутивов? Например, следующее не то, что я хочу, как obs1, obs2 а также obs3 независимы друг от друга.

p.sample("obs1", d.Categorical(logits=logit_pobs1).independent(1), obs=t.t(obs1))
p.sample("obs2", d.Normal(loc=mu_obs2, scale=t.ones(mu_obs2.shape)).independent(1), obs=t.t(obs2))
p.sample("obs3", d.Bernoulli(logits=logit_pobs3).independent(1),obs3)

Я хотел бы сделать что-то вроде

p.sample("obs", d.joint(d.Bernoulli(...), d.Normal(...), d.Bernoulli(...)).independent(1),obs)

0 ответов

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