The Why and How of One Domain-Specific PyMC3 Extension by Dan Foreman-Mackey

Thanks for the kind words and questions @junpenglao, @twiecki, and @aloctavodia!

Re: on-boarding: I don’t know the answers, but it is something I’d love to brainstorm about more. Perhaps elsewhere on this board or as a github issue?

Re: theano-jax: I’m very excited about this development and I think it will make future-proofing my software a lot easier. I’ve made some progress making custom JAX ops (e.g. https://github.com/exoplanet-dev/celerite2/pull/9) and I’m hoping to write a blog post soon that tests out some of the newest features with some astro specific ops. It wasn’t trivial to get up and running with the steps needed to port the two (in particular, I’ve only previously had to care about the “transpose” rules, rather than a traceable “jvp” ops) but I think I’ve learned enough to make it all work!

Re: custom tuning: I don’t have examples where adapt_full doesn’t work and my custom routines are, but in most of my astro test cases, the implementations in my PyMC3 Extras package (based loosely on the Stan methods), tend to be slightly to significantly faster during warmup. I definitely haven’t benchmarked this properly!

Re: ABC: This is a great question and I think that a huge fraction of astronomy is well suited to ABC! I was hoping to focus more on looking into that in my research, but I’ve been distracted recently :smiley: I’d love to chat more!!

3 Likes