Parameters#

class scarlet2.Parameters(base)[source]#

Bases: dict

Collection class that contains parameters

Collection of optimizable parameters

This class creates a Pytree with the same shape as base and with Parameter instances and the nodes corresponding to the optimized parameters in base.

base#

Module(s) the parameters refer to

Type:

Module or tuple of modules

Examples

>>> with Scene(model_frame) as scene:
>>>     Source(center1, spectrum1, morph1)
>>>     Source(center2, spectrum2, morph2)
>>>
>>> with Parameters(scene):
>>>     Parameter(scene.sources[0].spectrum.data,
>>>               name=f"spectrum:0",
>>>               constraint=constraints.positive,
>>>               stepsize=relative_step)
>>> maxiter = 200
>>> scene_ = scene.fit(observation, max_iter=maxiter)

This example defines a scene with two sources, initialized with their respective center, spectrum, and morphology parameters. It then fits observation by adjusting only the spectrum array of the first source for 200 steps.

__iadd__(name, node, parameter)[source]#

Add parameter to collection

Parameters:
  • name (str) – Parameter name

  • node (jnp.ndarray) – Parameter array in the base model

  • parameter (Parameter) – Parameter specification to be added

__isub__(name)[source]#

Remove parameter from collection

Parameters:

name (str) – Parameter name in the base model

clear() None.  Remove all items from D.#
copy() a shallow copy of D#
fromkeys(value=None, /)#

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)#

Return the value for key if key is in the dictionary, else default.

items() a set-like object providing a view on D's items#
keys() a set-like object providing a view on D's keys#
pop(k[, d]) v, remove specified key and return the corresponding value.#

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()#

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault(key, default=None, /)#

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) None.  Update D from dict/iterable E and F.#

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() an object providing a view on D's values#