You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -38,28 +38,36 @@ Both classes are composed of internal specialist objects created at `__init__` t
38
38
|`GPdata`|[gp_data.py](fvgp/gp_data.py)| Data validation, shape tracking, Euclidean vs. non-Euclidean |
39
39
|`GPprior`|[gp_prior.py](fvgp/gp_prior.py)| Kernel and mean function; default is anisotropic Matérn with ARD |
40
40
|`GPlikelihood`|[gp_likelihood.py](fvgp/gp_likelihood.py)| Noise model (variances or callable) |
41
-
|`GPMarginalLikelihood`|[gp_marginal_likelihood.py](fvgp/gp_marginal_likelihood.py)| Log marginal likelihood; owns Cholesky/LU factorizations of K+V |
41
+
|`GPkv`|[gp_kv.py](fvgp/gp_kv.py)| Owns K+V matrix state and all factorizations; dispatches solves/logdets across linalg modes |
42
+
|`GPMarginalLikelihood`|[gp_marginal_likelihood.py](fvgp/gp_marginal_likelihood.py)| Log marginal likelihood and its gradient; delegates factorization to `GPkv`|
-**[gp_kv.py](fvgp/gp_kv.py)** — `GPkv` manages all K+V state across linalg modes: `"Chol"`, `"CholInv"`, `"Inv"`, `"sparseLU"`, `"sparseCG"`, `"sparseMINRES"`, and preconditioned variants. The mode is set at init and determines which factorization is updated when data or hyperparameters change. Custom solvers can be injected as a 3-tuple of callables.
-**[gp_mcmc.py](fvgp/gp_mcmc.py)** — Adaptive Metropolis–Hastings sampler used for Bayesian hyperparameter inference
52
+
-**[gp_actor.py](fvgp/gp_actor.py)** — `AsyncOptimizer` wraps `_MCMCActor` and `_AdamActor` for non-blocking background training; used by `GPtraining` for async MCMC and Adam modes
50
53
51
54
### Scaling to large datasets (`gp2Scale`)
52
55
53
56
When `gp2Scale=True`, `GP` switches to a Wendland (compactly supported) kernel producing sparse covariance matrices and uses Dask for distributed computation. This path requires a Dask client to be passed in and uses sparse linear solvers instead of dense Cholesky.
54
57
55
58
### Customization API
56
59
57
-
Kernels, mean functions, and noise models are all plain Python callables with standardized signatures. Users pass them as arguments to `GP`/`fvGP` constructors. Kernel gradients can be user-supplied or computed via finite differences.
60
+
Kernels, mean functions, and noise models are all plain Python callables with standardized signatures. Users pass them as arguments to `GP`/`fvGP` constructors. The full hyperparameter vector is shared across kernel, mean, and noise callables, but each callable must only read its reserved index range. Kernel gradients can be user-supplied or computed via finite differences.
58
61
59
62
### Information-theoretic methods
60
63
61
64
`GP` exposes `gp_entropy()`, `gp_mutual_information()`, `gp_kl_div()`, and predictive metrics (`rmse`, `nlpd`, `crps`, `r2`, `picp`), all computed via `GPposterior`.
62
65
66
+
### Extension modules
67
+
68
+
-**[ggmp.py](fvgp/ggmp.py)** — `GGMP` (Gaussian GP for Gaussian Mixture data): fits K GMM components per station, each backed by its own `GP`; intended for distributional regression. Written by Vardaan Tekriwal. Excluded from the test suite (`# pragma: no cover`).
69
+
-**[deep_kernel_network.py](fvgp/deep_kernel_network.py)** — `Network` (PyTorch `nn.Module`): a 3-layer ReLU network used as a feature extractor for deep kernel learning. Excluded from the test suite (`# pragma: no cover`).
0 commit comments