-
Notifications
You must be signed in to change notification settings - Fork 19
Add ensembles #560
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ensembles #560
Conversation
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #560 +/- ##
==========================================
+ Coverage 78.43% 79.03% +0.59%
==========================================
Files 132 138 +6
Lines 9396 9749 +353
==========================================
+ Hits 7370 7705 +335
- Misses 2026 2044 +18 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Coverage reportClick to see where and how coverage changed
This report was generated by python-coverage-comment-action |
This sounds great, though I am not sure if we can make emulators dataclasses since the way we are subclassing e.g.
It would be good to discuss whether to have this feature! If it is, updating to
Sounds good! I've updated #559 to have dropout as an option (but only during training) - it would be good to discuss the stochastic emulator case at inference time. |
Implementation of MC dropout |
From discussion with @radka-j @cisprague:
|
I think it might be worth using the GPyTorch I think the functionality/API should be very similar though I noticed that the |
…to learner to get notebook to work.
The following have been completed (along with corresponding tests):
Both have been demonstrated in a tutorial notebook, as well as their integration with active learning. The notebook is in draft form and will be further developed after receiving feedback. Regarding the failed precommit, it passes locally. Advice on how to resolve this would be appreciated. |
Mostly related to CI. Co-authored-by: Sam Greenbury <[email protected]>
In |
An option might be to have a subclass class DropoutTorchBackend(PyTorchBackend): ... |
Co-authored-by: cisprague <[email protected]>
Co-authored-by: cisprague <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks really great @cisprague, thanks! Just a couple of small comments as discussed above and a new issue to be opened for further revisions to the notebook but otherwise looks good to merge.
We now have a working prototype of ensembles in a tutorial notebook. Further development will result in complexity being transitioned from the tutorial notebook to the codebase.
Features:
Other things:
ensemble.fit
, it would be nice to see some feedback on the progress ofemulator.fit
for each of the emulators in the ensemble. Defining a custom__repr__
or casting all emulators as dataclasses are options for this. Dataclasses are helpful for this (especially the recursion needed to traverse all sub emulators).