mrpro.operators.functionals.ZeroFunctional
- class mrpro.operators.functionals.ZeroFunctional(target: Tensor | None | complex = None, weight: Tensor | complex = 1.0, dim: int | Sequence[int] | None = None, divide_by_n: bool = False, keepdim: bool = False)[source]
Bases:
ElementaryProximableFunctional
The constant zero functional.
- __init__(target: Tensor | None | complex = None, weight: Tensor | complex = 1.0, dim: int | Sequence[int] | None = None, divide_by_n: bool = False, keepdim: bool = False) None
Initialize a Functional.
We assume that functionals are given in the form \(f(x) = \phi ( weight ( x - target))\) for some functional \(\phi\).
- Parameters:
target – target element - often data tensor (see above)
weight – weight parameter (see above)
dim – dimension(s) over which functional is reduced. All other dimensions of weight ( x - target) will be treated as batch dimensions.
divide_by_n – if true, the result is scaled by the number of elements of the dimensions index by dim in the tensor weight ( x - target). If true, the functional is thus calculated as the mean, else the sum.
keepdim – if true, the dimension(s) of the input indexed by dim are maintained and collapsed to singeltons, else they are removed from the result.
- forward(x: Tensor) tuple[Tensor] [source]
Apply the functional to the tensor.
Always returns 0.
- Parameters:
x – input tensor
- Return type:
Result of the functional applied to x.
- prox(x: Tensor, sigma: float | Tensor = 1.0) tuple[Tensor] [source]
Apply the proximal operator to a tensor.
Always returns x, as the proximal operator of a constant functional is the identity.
- Parameters:
x – input tensor
sigma – step size
- Return type:
Result of the proximal operator applied to x
- prox_convex_conj(x: Tensor, sigma: float | Tensor = 1.0) tuple[Tensor] [source]
Apply the proximal operator of the convex conjugate of the functional to a tensor.
The convex conjugate of the zero functional is the indicator function over \(C^N \setminus {0}\), which evaluates to infinity for all values of x except zero. If sigma>0, the proximal operator of the scaled convex conjugate is constant zero, otherwise it is the identity.
- Parameters:
x – input tensor
sigma – step size
- Return type:
Result of the proximal operator of the convex conjugate applied to x