Difference between Predictive & guide.sample_posterior

Hello,

Does one can provide me some hints to understand teh differences between

predictive = Predictive(guide, params=svi_result.params, num_samples=5000)
samples = predictive(jax.random.PRNGKey(1), data)

and

 samples = guide.sample_posterior(jax.random.PRNGKey(1), svi_result.params, sample_shape=(5000,))

Thanks.

They are different. Get posterior method is a convenient method to get posterior samples. Predictive is a more general utility which is used to get predictive distributions. You can look at the outputs to see the difference. We can use predictive to get posterior samples from the guide, given optimized parameters, as you did (your code should be equivalent modulo random seeds).