Hi: I’m entirely new to NumPyro / Pyro, somewhat new to probabilistic programming, and am trying to determine whether NumPyro or Pyro would be a viable option for an application I have in mind. The model is a complicated, potentially non-standard hierarchical Bayesian, so I’m inclined to think that I should at least initially run it with MCMC rather than VI. Given speed concerns, would that suggest using NumPyro rather than Pyro? The model also requires a Poisson binomial distribution, which I do not see implemented in NumPyro or Pyro. The distribution is implemented in an R package (C++ / Rcpp) and there is a pure Python implementation (though that implementation may not have a viable exact method for this application). Am hoping to be able to reuse some existing code, if possible.

I’ve noticed some discussion on this forum about creating user-defined distributions for Pyro, but not for NumPyro. Would implementing a user-defined dist for NumPyro be much different than for Pyro? Also, how difficult might this be for a new user? The exact method I need requires a fast Fourier transform (FFT), for which there is an existing C program. There are Python implementations, but I’m not sure if they are adequately fast. Thoughts?