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