autoarray.inversion.regularization.Constant#
- class Constant[source]#
Bases:
AbstractRegularizationRegularization which uses the neighbors of the mesh (e.g. shared Delaunay vertexes) and a single value to smooth an inversion’s solution.
For this regularization scheme, there is only 1 regularization coefficient that is applied to all neighboring pixels / parameters. This means that the matrix B only needs to regularize pixels / parameters in one direction (e.g. pixel 0 regularizes pixel 1, but NOT visa versa). For example:
- B = [-1, 1] [0->1]
[0, -1] 1 does not regularization with 0
A small numerical value of 1.0e-8 is added to all elements in constant regularization matrix, to ensure that it is positive definite.
A full description of regularization and this matrix can be found in the parent AbstractRegularization class.
JAX & gradient support (2026-07 gradient sweep): on meshes with an analytic neighbor structure (the rectangular family) this scheme is JAX-differentiable and FD-certified. On the Delaunay mesh family (
Delaunay,DelaunayNN,KNearestNeighbor,KNNBarycentric) the neighbors come from a directscipy.spatial.Delaunaycall on the traced source-plane mesh grid, so it raisesTracerArrayConversionErrorunderjax.jit/jax.grad— use a split-family scheme (e.g.ConstantSplit) there instead.- Parameters:
coefficient (
float) – The regularization coefficient which controls the degree of smooth of the inversion reconstruction.
Methods
log_det_regularization_matrix_term_fromReturns
log det Hof this scheme's regularization matrix computed from a factorization the scheme itself knows about, orNonewhen no such shortcut exists (the default).Returns the regularization matrix with shape [pixels, pixels].
regularization_term_fromReturns this scheme's contribution to the regularization term
s^T H scomputed from a factorization the scheme itself knows about, orNonewhen no such shortcut exists (the default).Returns the regularization weights of this regularization scheme.
Attributes
is_split_regularizationWhether this scheme is a "split" regularization variant, which regularizes using a split-cross calculation of the mesh's mappings rather than the mappings themselves.
- regularization_weights_from(linear_obj, xp=<module 'numpy' from '/home/docs/checkouts/readthedocs.org/user_builds/pyautogalaxy/envs/latest/lib/python3.12/site-packages/numpy/__init__.py'>)[source]#
Returns the regularization weights of this regularization scheme.
The regularization weights define the level of regularization applied to each parameter in the linear object (e.g. the
pixelsin aMapper).For standard regularization (e.g.
Constant) are weights are equal, however for adaptive schemes (e.g.Adapt) they vary to adapt to the data being reconstructed.- Parameters:
linear_obj (
LinearObj) – The linear object (e.g. aMapper) which uses these weights when performing regularization.- Return type:
The regularization weights.
- regularization_matrix_from(linear_obj, xp=<module 'numpy' from '/home/docs/checkouts/readthedocs.org/user_builds/pyautogalaxy/envs/latest/lib/python3.12/site-packages/numpy/__init__.py'>)[source]#
Returns the regularization matrix with shape [pixels, pixels].
- Parameters:
linear_obj (
LinearObj) – The linear object (e.g. aMapper) which uses this matrix to perform regularization.- Return type:
The regularization matrix.