LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Attributes | List of all members
lsst.scarlet.lite.parameters.Parameter Class Reference
Inheritance diagram for lsst.scarlet.lite.parameters.Parameter:
lsst.scarlet.lite.parameters.AdaproxParameter lsst.scarlet.lite.parameters.FistaParameter lsst.scarlet.lite.parameters.FixedParameter

Public Member Functions

 __init__ (self, np.ndarray x, dict[str, np.ndarray] helpers, Callable|float step, Callable|None grad=None, Callable|None prox=None)
 
float step (self)
 
tuple[int,...] shape (self)
 
npt.DTypeLike dtype (self)
 
Parameter copy (self)
 
 update (self, int it, np.ndarray input_grad, *args)
 
 resize (self, Box old_box, Box new_box)
 

Public Attributes

 x
 
 helpers
 
 grad
 
 prox
 

Protected Attributes

 _step
 

Detailed Description

A parameter in a `Component`

Parameters
----------
x:
    The array of values that is being fit.
helpers:
    A dictionary of helper arrays that are used by an optimizer to
    persist values like the gradient of `x`, the Hessian of `x`, etc.
step:
    A numerical step value or function to calculate the step for a
    given `x``.
grad:
    A function to calculate the gradient of `x`.
prox:
    A function to take the proximal operator of `x`.

Definition at line 63 of file parameters.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.scarlet.lite.parameters.Parameter.__init__ ( self,
np.ndarray x,
dict[str, np.ndarray] helpers,
Callable | float step,
Callable | None grad = None,
Callable | None prox = None )

Reimplemented in lsst.scarlet.lite.parameters.FixedParameter, lsst.scarlet.lite.parameters.AdaproxParameter, and lsst.scarlet.lite.parameters.FistaParameter.

Definition at line 82 of file parameters.py.

89 ):
90 self.x = x
91 self.helpers = helpers
92
93 if isinstance(step, float):
94 _step = step_function_wrapper(step)
95 else:
96 _step = step
97
98 self._step = _step
99 self.grad = grad
100 self.prox = prox
101

Member Function Documentation

◆ copy()

Parameter lsst.scarlet.lite.parameters.Parameter.copy ( self)
Copy this parameter, including all of the helper arrays.

Definition at line 123 of file parameters.py.

123 def copy(self) -> Parameter:
124 """Copy this parameter, including all of the helper arrays."""
125 helpers = {k: v.copy() for k, v in self.helpers.items()}
126 return Parameter(self.x.copy(), helpers, 0)
127
std::vector< SchemaItem< Flag > > * items

◆ dtype()

npt.DTypeLike lsst.scarlet.lite.parameters.Parameter.dtype ( self)
The numpy dtype of the array that is being fit.

Definition at line 119 of file parameters.py.

119 def dtype(self) -> npt.DTypeLike:
120 """The numpy dtype of the array that is being fit."""
121 return self.x.dtype
122

◆ resize()

lsst.scarlet.lite.parameters.Parameter.resize ( self,
Box old_box,
Box new_box )
Grow the parameter and all of the helper parameters

Parameters
----------
old_box:
    The old bounding box for the parameter.
new_box:
    The new bounding box for the parameter.

Definition at line 144 of file parameters.py.

144 def resize(self, old_box: Box, new_box: Box):
145 """Grow the parameter and all of the helper parameters
146
147 Parameters
148 ----------
149 old_box:
150 The old bounding box for the parameter.
151 new_box:
152 The new bounding box for the parameter.
153 """
154 slices = new_box.overlapped_slices(old_box)
155 x = np.zeros(new_box.shape, dtype=self.dtype)
156 x[slices[0]] = self.x[slices[1]]
157 self.x = x
158
159 for name, value in self.helpers.items():
160 result = np.zeros(new_box.shape, dtype=self.dtype)
161 result[slices[0]] = value[slices[1]]
162 self.helpers[name] = result
163
164

◆ shape()

tuple[int, ...] lsst.scarlet.lite.parameters.Parameter.shape ( self)
The shape of the array that is being fit.

Definition at line 114 of file parameters.py.

114 def shape(self) -> tuple[int, ...]:
115 """The shape of the array that is being fit."""
116 return self.x.shape
117

◆ step()

float lsst.scarlet.lite.parameters.Parameter.step ( self)
Calculate the step

Return
------
step:
    The numerical step if no iteration is given.

Definition at line 103 of file parameters.py.

103 def step(self) -> float:
104 """Calculate the step
105
106 Return
107 ------
108 step:
109 The numerical step if no iteration is given.
110 """
111 return self._step(self.x)
112
int const step

◆ update()

lsst.scarlet.lite.parameters.Parameter.update ( self,
int it,
np.ndarray input_grad,
* args )
Update the parameter in one iteration.

This includes the gradient update, proximal update,
and any meta parameters that are stored as class
attributes to update the parameter.

Parameters
----------
it:
    The current iteration
input_grad:
    The gradient from the full model, passed to the parameter.

Reimplemented in lsst.scarlet.lite.parameters.FistaParameter, lsst.scarlet.lite.parameters.AdaproxParameter, and lsst.scarlet.lite.parameters.FixedParameter.

Definition at line 128 of file parameters.py.

128 def update(self, it: int, input_grad: np.ndarray, *args):
129 """Update the parameter in one iteration.
130
131 This includes the gradient update, proximal update,
132 and any meta parameters that are stored as class
133 attributes to update the parameter.
134
135 Parameters
136 ----------
137 it:
138 The current iteration
139 input_grad:
140 The gradient from the full model, passed to the parameter.
141 """
142 raise NotImplementedError("Base Parameters cannot be updated")
143

Member Data Documentation

◆ _step

lsst.scarlet.lite.parameters.Parameter._step
protected

Definition at line 98 of file parameters.py.

◆ grad

lsst.scarlet.lite.parameters.Parameter.grad

Definition at line 99 of file parameters.py.

◆ helpers

lsst.scarlet.lite.parameters.Parameter.helpers

Definition at line 91 of file parameters.py.

◆ prox

lsst.scarlet.lite.parameters.Parameter.prox

Definition at line 100 of file parameters.py.

◆ x

lsst.scarlet.lite.parameters.Parameter.x

Definition at line 90 of file parameters.py.


The documentation for this class was generated from the following file: