代码之家  ›  专栏  ›  技术社区  ›  alpaca

从Pyro的联合分布中取样

  •  2
  • alpaca  · 技术社区  · 7 年前

    我了解如何从多维分类法或多维正态法(每列中都有依赖性)中取样。例如,对于多变量分类,可以按如下方式执行:

    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 回复  |  直到 7 年前
    推荐文章