Jan

Results 60 issues of Jan

To Do: - read https://arxiv.org/abs/2112.08866 - make a plan how and where to implement this (dedicated misspecification module, or just in `neural_nets`?) - add a test with misspecified data (ideally...

hackathon
feature
model-misspecification

Within a test module, e.g., `linearGaussian_snpe_test.py`, we repeatedly training `NPE` to test something. Sometimes it makes sense to train `NPE` from scratch every time, e.g., when testing different priors or...

hackathon
improving-tests

At the moment we have some structure in the test suite, e.g., roughly a test module for every method or feature, e.g., `mcmc_test.py`, or `embedding_net_test.py`. However, we also have things...

hackathon
improving-tests

with #1370 we changed the type of the `proposal` argument to `accept_reject_sample` to be `Callable` instead of `torch.Distribution` to enable passing a `sample` function directly. https://github.com/sbi-dev/sbi/pull/1370#discussion_r1959346595 However, it is not...

architecture
API changes
hackathon

`NPE_A_MDN` inherits from `ConditionalDensityEstimator` directly, but is located in the `trainer.npe.npe_a` module. Either it should inherit from `PosteriorEstimator` like the other `NPE` methods, or it should probably be renamed and...

architecture
hackathon
refactoring

There seem to be a couple of problems with the `NeuralPosterior` class as the main interface for all the posterior classes: - it is treated as an abstract class, but...

bug
architecture
API changes
hackathon

At the moment our command line logging during posterior sampling is not consistent: for NPE / direct posteriors which we usually sample using accept and reject sampling within prior bounds,...

docs
hackathon

### Context - pairplot refactoring in #1631 introduces typed options and upper/lower/diag API; offdiag is deprecated. - Pain point remains: users still pass many repeated args (labels, limits, ticks) in...

enhancement

### Problem The SBI codebase currently creates deep copies of neural networks and posteriors in three places: 1. `train()` returns `deepcopy(self._neural_net)` 2. `build_posterior()` returns `deepcopy(self._posterior)` 3. `build_posterior()` stores `self._model_bank.append(deepcopy(self._posterior))` These...