How to get the joint distribution in Pyro?

Hi fritzo, On second thought, the example in the tutorial suggests that the model construct actually corresponds to the posterior probability p_θ(z|x), because of the conditional “obs=” in the following line:
pyro.sample("obs_{}".format(i), dist.Bernoulli(f), obs=data[i])

If I missed something, could you point out a link that shows the model construct corresponds to the joint probability? Thanks!