Skip to content

Commit 2e4f0dc

Browse files
Merge remote-tracking branch 'origin/main' into score_matching
2 parents f0da7e2 + 19364f0 commit 2e4f0dc

File tree

269 files changed

+22545
-9513
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

269 files changed

+22545
-9513
lines changed

.github/workflows/build_docs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ jobs:
3636
run: |
3737
cd mkdocs
3838
uv run jupyter nbconvert --to markdown ../docs/tutorials/*.ipynb --output-dir docs/tutorials/
39+
uv run jupyter nbconvert --to markdown ../docs/advanced_tutorials/*.ipynb --output-dir docs/tutorials/
40+
uv run jupyter nbconvert --to markdown ../docs/how_to_guide/09_sampler_interface.ipynb --output-dir docs/tutorials/
3941
4042
- name: Configure Git user for bot
4143
run: |

.github/workflows/cd.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,22 @@ jobs:
2929
fetch-depth: 0
3030
lfs: false
3131

32-
- name: Install uv and set the python version
33-
uses: astral-sh/setup-uv@v5
32+
- name: Set up Python
33+
uses: actions/setup-python@v5
3434
with:
3535
python-version: ${{ matrix.python-version }}
36+
37+
- name: Set up uv
38+
uses: astral-sh/setup-uv@v5
39+
with:
3640
enable-cache: true
3741
cache-dependency-glob: "pyproject.toml"
3842

3943
- name: Install dependencies with uv
4044
run: uv sync --extra dev
4145

4246
- name: Run the fast and the slow CPU tests with coverage
43-
run: uv run pytest -v -x -n auto -m "not gpu" --cov=sbi --cov-report=xml tests/
47+
run: uv run pytest -v -x -n auto -m "not gpu" --cov=sbi --cov-report=xml --junitxml=junit.xml -o junit_family=legacy tests/
4448

4549
- name: Upload coverage to Codecov
4650
uses: codecov/codecov-action@v4-beta
@@ -50,3 +54,9 @@ jobs:
5054
flags: unittests
5155
name: codecov-sbi-all-cpu
5256
token: ${{ secrets.CODECOV_TOKEN }}
57+
58+
- name: Upload test results to Codecov
59+
if: ${{ !cancelled() }}
60+
uses: codecov/test-results-action@v1
61+
with:
62+
token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/ci.yml

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,19 @@ jobs:
3131
fetch-depth: 0
3232
lfs: false
3333

34-
- name: Install uv and set the python version
35-
uses: astral-sh/setup-uv@v5
34+
- name: Set up Python
35+
uses: actions/setup-python@v5
3636
with:
3737
python-version: ${{ matrix.python-version }}
38+
39+
- name: Set up uv
40+
uses: astral-sh/setup-uv@v5
41+
with:
3842
enable-cache: true
3943
cache-dependency-glob: "pyproject.toml"
4044

4145
- name: Install dependencies with uv
42-
run: |
43-
uv pip install torch --extra-index-url https://download.pytorch.org/whl/cpu
44-
uv pip install -e .[dev]
46+
run: uv sync --extra dev
4547

4648
- name: Cache uv dependencies
4749
uses: actions/cache@v4
@@ -51,20 +53,8 @@ jobs:
5153
restore-keys: |
5254
uv-${{ runner.os }}-${{ matrix.python-version }}-
5355
54-
# - name: Cache testmon data
55-
# uses: actions/cache@v4
56-
# with:
57-
# path: .testmondata
58-
# key: testmon-${{ runner.os }}-${{ matrix.python-version }}-${{ github.ref }}
59-
# restore-keys: |
60-
# testmon-${{ runner.os }}-${{ matrix.python-version }}-
61-
62-
# - name: Fix file permissions for testmondata
63-
# run: |
64-
# [ -f .testmondata ] && chmod u+w .testmondata || true
65-
6656
- name: Run fast CPU tests with coverage
67-
run: uv run pytest -v -n auto -m "not slow and not gpu" --cov=sbi --cov-report=xml --splitting-algorithm least_duration --splits ${{ matrix.split_size }} --group ${{ matrix.group_number }} tests/ #--testmon-forceselect
57+
run: uv run pytest -v -n auto -m "not slow and not gpu" --cov=sbi --cov-report=xml --junitxml=junit.xml -o junit_family=legacy --splitting-algorithm least_duration --splits ${{ matrix.split_size }} --group ${{ matrix.group_number }} tests/
6858

6959
- name: Upload coverage to Codecov
7060
uses: codecov/codecov-action@v4
@@ -74,3 +64,9 @@ jobs:
7464
flags: unittests
7565
name: codecov-sbi-fast-cpu
7666
token: ${{ secrets.CODECOV_TOKEN }}
67+
68+
- name: Upload test results to Codecov
69+
if: ${{ !cancelled() }}
70+
uses: codecov/test-results-action@v1
71+
with:
72+
token: ${{ secrets.CODECOV_TOKEN }}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: License Header Check
2+
3+
on: [pull_request, workflow_dispatch]
4+
5+
defaults:
6+
run:
7+
shell: bash
8+
9+
jobs:
10+
check-license-headers:
11+
name: Check License Headers
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
lfs: false
20+
21+
- name: Check license headers
22+
run: |
23+
expected_header_1="# This file is part of sbi, a toolkit for simulation-based inference. sbi is licensed"
24+
expected_header_2="# under the Apache License Version 2.0, see <https://www.apache.org/licenses/>"
25+
26+
invalid_files=()
27+
28+
while IFS= read -r file; do
29+
file_header_1=$(head -n 1 "$file")
30+
file_header_2=$(head -n 2 "$file" | tail -n 1)
31+
32+
invalid=false
33+
34+
# Check the first line
35+
if [ "$file_header_1" != "$expected_header_1" ]; then
36+
invalid=true
37+
fi
38+
39+
# Check the second line
40+
if [ "$file_header_2" != "$expected_header_2" ]; then
41+
invalid=true
42+
fi
43+
44+
# If either line is invalid, add to the list
45+
if [ "$invalid" = true ]; then
46+
invalid_files+=("$file")
47+
fi
48+
49+
done < <(find sbi tests -name "*.py" -type f)
50+
51+
# Report results
52+
if [ ${#invalid_files[@]} -ne 0 ]; then
53+
echo "❌ Missing or incorrect license headers in the following files:"
54+
for file in "${invalid_files[@]}"; do
55+
echo " $file"
56+
done
57+
echo "Make sure the following two lines are provided and correctly spelled at the very start of all above listed files"
58+
echo "$expected_header_1"
59+
echo "$expected_header_2"
60+
exit 1
61+
else
62+
echo "✅ All files have the correct license headers."
63+
exit 0
64+
fi

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ jobs:
7171
name: python-package-distributions
7272
path: dist/
7373
- name: Sign the dists with Sigstore
74-
uses: sigstore/gh-action-sigstore-python@v2.1.1
74+
uses: sigstore/gh-action-sigstore-python@v3.0.0
7575
with:
7676
inputs: >-
7777
./dist/*.tar.gz

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
.sbi_env/
33
*sbi-logs/
44
/docs/site/*
5+
/docs/reference/_autosummary/*
56

67
# Development files and python cache
78
/*.pyc
89
/*.egg
910
/*.egg-info
11+
.venv*
1012

1113
# Notebook checkpoints
1214
.ipynb_checkpoints
@@ -100,3 +102,6 @@ target/
100102
# uv
101103
uv.lock
102104
.python-version
105+
106+
# Serena cache
107+
.serena/

CHANGELOG.md

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,173 @@
11
# Changelog
22

3+
## v0.25.0
4+
5+
### ✨ Highlights
6+
7+
#### 🚀 New Inference Methods
8+
9+
* **MNPE class mixed parameter (similar to MNLE)** by @dgedon in https://github.com/sbi-dev/sbi/pull/1362
10+
* **Implementation of SNPE-B (#199)** by @etouron1 in https://github.com/sbi-dev/sbi/pull/1471
11+
12+
#### 🧠 Neural Network Architectures & Embedding Networks
13+
14+
* **Add transformer embedding net** by @NicolasRR in https://github.com/sbi-dev/sbi/pull/1494
15+
* **Add embedding net that uses 1D causal convolutions (#1459)** by @Aranka-S in https://github.com/sbi-dev/sbi/pull/1499
16+
* **Add LRU-backed embedding networks** by @famura in https://github.com/sbi-dev/sbi/pull/1512
17+
* **Add ResNet as embedding model** by @StefanWahl in https://github.com/sbi-dev/sbi/pull/1472
18+
* **Spectral convolution embedding net** by @L-in-da in https://github.com/sbi-dev/sbi/pull/1503
19+
20+
#### ⭐ Major Features & Capabilities
21+
22+
* **Unify flow matching and score-based models** by @StarostinV in https://github.com/sbi-dev/sbi/pull/1497
23+
* **Model misspecification detection based on MMD** by @coschroeder in https://github.com/sbi-dev/sbi/pull/1502
24+
* **Marginal estimator log-prob based test for misspecification** by @swag2198 in https://github.com/sbi-dev/sbi/pull/1522
25+
* **Adding interface for unconditional flow training** by @plcrodrigues in https://github.com/sbi-dev/sbi/pull/1470
26+
* **Support using trained estimators in Pyro models** by @sethaxen in https://github.com/sbi-dev/sbi/pull/1491
27+
* **Add util to generate mcmc samples from user defined potential (#1405)** by @hayden-johnson in https://github.com/sbi-dev/sbi/pull/1483
28+
* **Logit transform** by @anastasiakrouglova in https://github.com/sbi-dev/sbi/pull/1485
29+
30+
#### 📚 Documentation & Tutorials
31+
32+
* **Tutorial on new features for score-based methods #1392** by @touronc in https://github.com/sbi-dev/sbi/pull/1489
33+
* **Docs: Introduce Readthedocs website** by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1463
34+
35+
### 🐛 Bug Fixes
36+
37+
* z_score correct order in Zuko by @anastasiakrouglova in https://github.com/sbi-dev/sbi/pull/1492
38+
* Minor fix when moving thetas from GPU to CPU by @famura in https://github.com/sbi-dev/sbi/pull/1515
39+
* Minor fix while using unconditional density estimator and LRU embedding by @ARna06 in https://github.com/sbi-dev/sbi/pull/1556
40+
* fix: replace 'in' operator with '==' for proper classifier comparison by @abelaba in https://github.com/sbi-dev/sbi/pull/1550
41+
* flowmatching condition shape fix by @gmoss13 in https://github.com/sbi-dev/sbi/pull/1584
42+
* patch for torch bug in tarp, run torch.histogram with cpu-only tensor by @psteinb in https://github.com/sbi-dev/sbi/pull/1596
43+
* fix failing tarp test by @janfb in https://github.com/sbi-dev/sbi/pull/1628
44+
* fix: cap max_sampling_batch_size to prevent excessive memory by @janfb in https://github.com/sbi-dev/sbi/pull/1624
45+
* 1561 computation of denoising posterior precision matrix in jac method score fn iid by @manuelgloeckler in https://github.com/sbi-dev/sbi/pull/1636
46+
* fix xfail test, fix deprecation warnings by @janfb in https://github.com/sbi-dev/sbi/pull/1642
47+
* fix: iid-score device handling by @janfb in https://github.com/sbi-dev/sbi/pull/1650
48+
49+
### 🛠️ Maintenance & Improvements
50+
51+
#### 🔧 Code Quality & Refactoring
52+
53+
* Refactoring flow and score matching classes and nets by @manuelgloeckler in https://github.com/sbi-dev/sbi/pull/1544
54+
* Rename inference trainer classes by @abelaba in https://github.com/sbi-dev/sbi/pull/1605
55+
* Rename VectorFieldInference to VectorFieldTrainer by @abelaba in https://github.com/sbi-dev/sbi/pull/1614
56+
* Refactor build_posterior to Eliminate Duplication Across Trainers by @abelaba in https://github.com/sbi-dev/sbi/pull/1610
57+
* Refactor build posterior method arguments to use Literals by @abelaba in https://github.com/sbi-dev/sbi/pull/1606
58+
* Refactor build_posterior Posterior Configuration Using Dataclasses by @abelaba in https://github.com/sbi-dev/sbi/pull/1619
59+
* Use TypeAlias and consistent naming for sbi types by @janfb in https://github.com/sbi-dev/sbi/pull/1637
60+
* Add protocol for estimator builder by @abelaba in https://github.com/sbi-dev/sbi/pull/1633
61+
* Improve abc implementation by @janfb in https://github.com/sbi-dev/sbi/pull/1615
62+
* Refactor RatioEstimator to subclass ConditionalEstimator @abelaba in https://github.com/sbi-dev/sbi/pull/1652
63+
64+
#### 🏷️ Type Hints & API Improvements
65+
66+
* fix: add enum for flow options to fix type hints. by @janfb in https://github.com/sbi-dev/sbi/pull/1562
67+
* fix LC2ST kwarg typing by @janfb in https://github.com/sbi-dev/sbi/pull/1565
68+
* fix: Update RatioEstimator classifier argument to use a Protocol by @abelaba in https://github.com/sbi-dev/sbi/pull/1582
69+
* Update append_simulations return type to Self by @abelaba in https://github.com/sbi-dev/sbi/pull/1622
70+
* Deprecation Warnings for build_posterior stringly typed parameters by @abelaba in https://github.com/sbi-dev/sbi/pull/1627
71+
72+
#### 🧪 Testing & CI/CD
73+
74+
* Testmon by @manuelgloeckler in https://github.com/sbi-dev/sbi/pull/1452
75+
* disable testmon for now by @manuelgloeckler in https://github.com/sbi-dev/sbi/pull/1467
76+
* chore: Use pytest-split plugin in ci workflow by @schroedk in https://github.com/sbi-dev/sbi/pull/1465
77+
* tests: refactor "not slow" tests to be not so slow by @janfb in https://github.com/sbi-dev/sbi/pull/1495
78+
* Test for known pytorch distribution transform issue by @dgedon in https://github.com/sbi-dev/sbi/pull/1504
79+
* xfail scan test on python 3.13 by @manuelgloeckler in https://github.com/sbi-dev/sbi/pull/1533
80+
* Gpu test for VectorFieldPosterior by @jorobledo in https://github.com/sbi-dev/sbi/pull/1542
81+
* set vector field iid-tests xfail by @janfb in https://github.com/sbi-dev/sbi/pull/1554
82+
* Changed the xfail condition for LRU tests with mode='scan' by @famura in https://github.com/sbi-dev/sbi/pull/1552
83+
* Fix/lru test by @Matthijspals in https://github.com/sbi-dev/sbi/pull/1568
84+
* refactor sbc funcs and tests by @janfb in https://github.com/sbi-dev/sbi/pull/1578
85+
* chore: remove testmon, add codecov test analytics by @janfb in https://github.com/sbi-dev/sbi/pull/1592
86+
* chore: reorder setup steps for Python and uv in CI/CD workflows by @janfb in https://github.com/sbi-dev/sbi/pull/1601
87+
* Fix/lc2st numpy type fixes by @janfb in https://github.com/sbi-dev/sbi/pull/1613
88+
* Fix failing CI on main. by @janfb in https://github.com/sbi-dev/sbi/pull/1618
89+
* Fix slow vector field tests by @janfb in https://github.com/sbi-dev/sbi/pull/1657
90+
91+
#### 📖 Documentation & Website
92+
93+
* Fix tests for new docs by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1475
94+
* Prevent notebook execution upon doc build by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1477
95+
* Fix broken links on website by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1480
96+
* fix: Update documentation folder path by @abelaba in https://github.com/sbi-dev/sbi/pull/1510
97+
* fix path to contribute.md by @psteinb in https://github.com/sbi-dev/sbi/pull/1507
98+
* Add utils to docs by @sethaxen in https://github.com/sbi-dev/sbi/pull/1520
99+
* Update new Readthedocs website by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1519
100+
* fix broken links on new website by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1538
101+
* Fixups for new website landing page by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1539
102+
* Fix: add tutorial page to mkdocs website by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1540
103+
* Fix broken links in some tutorials by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1541
104+
* Add examples to documentation by @jorobledo in https://github.com/sbi-dev/sbi/pull/1548
105+
* docs: Add importance_sampling_parameters to build_posterior docstring. by @abelaba in https://github.com/sbi-dev/sbi/pull/1558
106+
* Add missing arguments to LikelihoodEstimator and RatioEstimator docstrings. by @abelaba in https://github.com/sbi-dev/sbi/pull/1571
107+
* Fixups for new RTD website by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1573
108+
* Tutorial with a more representative training loop by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1574
109+
* Fixups for rendering of HH tutorial notebook by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1575
110+
* fix for colors in Hodgkin-Huxley notebook by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1576
111+
* Add citations to how-to guide by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1579
112+
* Clarify fullscreen view of applications-explorer by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1580
113+
* Fixups for the documentation by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1585
114+
* fixed misrendered bullet list, tested locally by @psteinb in https://github.com/sbi-dev/sbi/pull/1594
115+
* Improvements to L-C2ST tutorial by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1588
116+
* docs: Change colortheme in light mode by @michaeldeistler in https://github.com/sbi-dev/sbi/pull/1638
117+
* Posterior parameters doc by @abelaba in https://github.com/sbi-dev/sbi/pull/1644
118+
* fix contributing links by @janfb in https://github.com/sbi-dev/sbi/pull/1647
119+
* docs: add posterior parameters dataclass how to guide by @abelaba in https://github.com/sbi-dev/sbi/pull/1654
120+
121+
#### 🏗️ Infrastructure & Dependencies
122+
123+
* Add uv support by @abelaba in https://github.com/sbi-dev/sbi/pull/1518
124+
* switch to numfocus code of conduct by @janfb in https://github.com/sbi-dev/sbi/pull/1560
125+
* Update readme with new JOSS citation by @janfb in https://github.com/sbi-dev/sbi/pull/1564
126+
* update numfocus code of conduct by @janfb in https://github.com/sbi-dev/sbi/pull/1602
127+
* Added Apache License reference comments to source files + CI bash script check by @nMaax in https://github.com/sbi-dev/sbi/pull/1599
128+
129+
#### 👥 User Experience & Warnings
130+
131+
* Change xfail to skipif as outcome is not consistent by @gmoss13 in https://github.com/sbi-dev/sbi/pull/1487
132+
* Add warning when using append_simulations with exclude_invalid_x=True by @abelaba in https://github.com/sbi-dev/sbi/pull/1486
133+
* Batch sampling slow without warning by @dgedon in https://github.com/sbi-dev/sbi/pull/1490
134+
* Clarify pbar annotation in sample_batched for DirectPosterior by @StefanWahl in https://github.com/sbi-dev/sbi/pull/1493
135+
136+
#### 🎮 GPU Support & Device Handling
137+
138+
* Prior to(device) by @jorobledo in https://github.com/sbi-dev/sbi/pull/1505
139+
* posterior.to(device) by @jorobledo in https://github.com/sbi-dev/sbi/pull/1527
140+
141+
#### 🔧 Miscellaneous Improvements
142+
143+
* ref: update tests, add types and docs to marginal trainer by @janfb in https://github.com/sbi-dev/sbi/pull/1516
144+
* integrate sbi application eplorer by @lappalainenj in https://github.com/sbi-dev/sbi/pull/1567
145+
* fix: update notebook references by @emmanuel-ferdman in https://github.com/sbi-dev/sbi/pull/1563
146+
* Update sbiutils.py to use one-dimensional batch by @vivienr in https://github.com/sbi-dev/sbi/pull/1577
147+
* fix: remove empty list default argument by @abelaba in https://github.com/sbi-dev/sbi/pull/1608
148+
* fix: throw exception on unsupported activation function by @emmanuel-ferdman in https://github.com/sbi-dev/sbi/pull/1609
149+
* fix: resolve logger warnings by @emmanuel-ferdman in https://github.com/sbi-dev/sbi/pull/1598
150+
* fix paths by @manuelgloeckler in https://github.com/sbi-dev/sbi/pull/1641
151+
152+
### 🎉 New Contributors
153+
154+
* @abelaba made their first contribution in https://github.com/sbi-dev/sbi/pull/1486
155+
* @dgedon made their first contribution in https://github.com/sbi-dev/sbi/pull/1490
156+
* @StefanWahl made their first contribution in https://github.com/sbi-dev/sbi/pull/1493
157+
* @touronc made their first contribution in https://github.com/sbi-dev/sbi/pull/1489
158+
* @jorobledo made their first contribution in https://github.com/sbi-dev/sbi/pull/1505
159+
* @hayden-johnson made their first contribution in https://github.com/sbi-dev/sbi/pull/1483
160+
* @sethaxen made their first contribution in https://github.com/sbi-dev/sbi/pull/1491
161+
* @etouron1 made their first contribution in https://github.com/sbi-dev/sbi/pull/1471
162+
* @Aranka-S made their first contribution in https://github.com/sbi-dev/sbi/pull/1499
163+
* @swag2198 made their first contribution in https://github.com/sbi-dev/sbi/pull/1522
164+
* @StarostinV made their first contribution in https://github.com/sbi-dev/sbi/pull/1497
165+
* @L-in-da made their first contribution in https://github.com/sbi-dev/sbi/pull/1503
166+
* @NicolasRR made their first contribution in https://github.com/sbi-dev/sbi/pull/1494
167+
* @vivienr made their first contribution in https://github.com/sbi-dev/sbi/pull/1577
168+
169+
**Full Changelog**: https://github.com/sbi-dev/sbi/compare/v0.24.0...v0.25.0
170+
3171
## v0.24.0
4172

5173
### ✨ Highlights

0 commit comments

Comments
 (0)