with pm.Model() as model:
l3 = pm.Poisson("l3", mu=lvl3, shape=lvl3.shape)
l2 = pm.Deterministic("l2", S_2 @ l3)
l1 = pm.Deterministic("l1", S_1 @ l2)
l0 = pm.Deterministic("l0", S_0 @ l1)
l2_pot = pm.Potential("l2_pot", pm.logp(pm.Poisson.dist(mu=lvl2, shape=lvl2.shape), l2))
l1_pot = pm.Potential("l1_pot", pm.logp(pm.Poisson.dist(mu=lvl1, shape=lvl1.shape), l1))
l0_pot = pm.Potential("l0_pot", pm.logp(pm.Poisson.dist(mu=lvl0[0]), l0))
model.point_logps() # no -inf should show up here
1 Like