Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions autogalaxy/config/priors/regularization/adapt_power.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
AdaptPower:
inner_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
outer_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
signal_scale:
type: Uniform
lower_limit: 0.0
upper_limit: 1.0
width_modifier:
type: Relative
value: 0.2
limits:
lower: 0.0
upper: inf
power:
type: Constant
value: 1.0
34 changes: 34 additions & 0 deletions autogalaxy/config/priors/regularization/adapt_split_power.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
AdaptSplitPower:
inner_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
outer_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
signal_scale:
type: Uniform
lower_limit: 0.0
upper_limit: 1.0
width_modifier:
type: Relative
value: 0.2
limits:
lower: 0.0
upper: inf
power:
type: Constant
value: 1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
AdaptSplitZerothPower:
zeroth_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
zeroth_signal_scale:
type: Uniform
lower_limit: 0.0
upper_limit: 1.0
width_modifier:
type: Relative
value: 0.2
limits:
lower: 0.0
upper: inf
inner_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
outer_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
signal_scale:
type: Uniform
lower_limit: 0.0
upper_limit: 1.0
width_modifier:
type: Relative
value: 0.2
limits:
lower: 0.0
upper: inf
power:
type: Constant
value: 1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
MaternAdaptPowerKernel:
scale:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.2
limits:
lower: 0.0
upper: inf
nu:
type: Uniform
lower_limit: 0.5
upper_limit: 5.5
width_modifier:
type: Relative
value: 0.2
limits:
lower: 0.0
upper: inf
inner_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
outer_coefficient:
type: LogUniform
lower_limit: 1.0e-06
upper_limit: 1000000.0
width_modifier:
type: Relative
value: 0.5
limits:
lower: 0.0
upper: inf
signal_scale:
type: Uniform
lower_limit: 0.0
upper_limit: 1.0
width_modifier:
type: Relative
value: 0.2
limits:
lower: 0.0
upper: inf
power:
type: Constant
value: 1.0
2 changes: 2 additions & 0 deletions docs/api/pixelization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ Regularization [ag.reg]
ConstantSplit
Adapt
AdaptSplit
AdaptPower
AdaptSplitPower

Settings
--------
Expand Down
38 changes: 38 additions & 0 deletions test_autogalaxy/test_regularization_power.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
"""
Model-composition gate for the ``*Power`` regularization siblings added in PyAutoArray.

These schemes are re-exported as ``ag.reg.*`` and carry their own prior configs
(``autogalaxy/config/priors/regularization/*_power.yaml``). Composing them proves both the re-export
chain and that the prior config resolves — including ``power``, which is fixed as a ``Constant``
prior so a non-linear search never samples it.
"""

import autofit as af
import autogalaxy as ag


def test__power_classes_are_re_exported():
assert ag.reg.AdaptPower is not ag.reg.Adapt
assert ag.reg.AdaptSplitPower is not ag.reg.AdaptSplit
assert ag.reg.AdaptSplitZerothPower is not ag.reg.AdaptSplitZeroth
assert ag.reg.MaternAdaptPowerKernel is not ag.reg.MaternAdaptKernel


def test__model_composition__power_is_a_constant_and_is_not_sampled():
model = af.Model(ag.reg.AdaptSplitPower)

assert "power" not in [prior_tuple[0] for prior_tuple in model.prior_tuples]
assert model.instance_from_prior_medians().power == 1.0

assert set(prior_tuple[0] for prior_tuple in model.prior_tuples) == {
"inner_coefficient",
"outer_coefficient",
"signal_scale",
}


def test__model_identifier__differs_from_the_legacy_class():
identifier_legacy = af.Model(ag.reg.AdaptSplit).identifier
identifier_power = af.Model(ag.reg.AdaptSplitPower).identifier

assert identifier_legacy != identifier_power
Loading