Week 4 into GSoC¶
So, the phase 1 coding period ends and let me summarize what I did for the last week. Let's bring back the tasks proposed at the end of week 3 and figure out how many I have completed -
- Write tests for conjugate normal models with known mean/variance.
- Configure
atol
argument fornp.testing.assert_allclose
. - Complete docs for optimizers by adding
**kwargs
option and writing corresponding maths equations. - Properly configure convergence checks and add an example to quickstart notebooks.
- Configure autobatching.
- Integrate Deterministics callbacks. (But I did it wrong)
- Complete remaining Approximations.
- Full Rank Approximation.
- Low Rank Approximation.
- Configure Minibatches.
- Update quick_start notebook with respect to all changes above.
I was unable to complete a few tasks because I got stuck for many days figuring out how to correctly handle shapes in Full Rank ADVI. Finally I was able to come up with a new _build_logfn
to handle shapes (on the guidelines provided by my mentor).
Experiments¶
Gist 1 - Source¶
I started the fourth week with a plan to include deterministics callbacks. Here are my experiments doing the same with PyMC4. All the determinitics are included in trace function. But when I opted for the same strategy to include deterministics while sampling, I got many shapes errors. The reason determinitics_callback
failed because it assumes sample size = 1
. We need to change this API.
Gist 2 - Source¶
My experiments involving how to configure Full Rank ADVI in TFP.
Gist 3 - Source¶
Comparisons drawn between PyMC3 and PyMC4 for 2-d Gaussians. TODO - complete comparisons for Mixture Distributions as well.
Tasks for the remaining GSoC period¶
From the API point of view, only 5 tasks are left for the GSoC -
- Configure autobatching.
- Configure Minibatches.
- Add an option of progressbar.
- Include deterministics samples.
- Add convergence checks.
From the view of adding examples, all the notebooks from PyMC3 need to be ported to PyMC4.
For week 5, I look forward to add progressbar and convergence checks to PyMC4.
Comparing with timeline¶
I have already completed all the tasks proposed for phase 1 evaluations. Also I have added Mean Field and Full Rank Approximations which were proposed for phase 2 and phase 3 of GSoC coding period respectively.
I am thankful to my mentor for his constant guidance and pymc-devs for being such a supportive community.
Thank you for reading!
With , Sayam