tick.prox.ProxEquality(strength: float = 0, range: tuple = None, positive: bool = False)[source]¶Projection operator onto the set of vector with all coordinates equal (or in the given range if given one). Namely, this simply replaces all coordinates by their average
strength : float, default=0.
Not used in this prox, but kept for compatibility issues
range : tuple of two int, default=`None`
Range on which the prox is applied. If
Nonethen the prox is applied on the whole vector
positive : bool, default=`False`
If True, ensures that the output of the prox has only non-negative entries (in the given range)
dtype : {'float64', 'float32'}
Type of the arrays used.
__init__(strength: float = 0, range: tuple = None, positive: bool = False)[source]¶Initialize self. See help(type(self)) for accurate signature.
call(coeffs, step=1.0, out=None)¶Apply proximal operator on a vector. It computes:
coeffs : numpy.ndarray, shape=(n_coeffs,)
Input vector on which is applied the proximal operator
step : float or np.array, default=1.
The amount of penalization is multiplied by this amount
If
float, the amount of penalization is multiplied by this amountIf
np.array, then each coordinate of coeffs (within the given range), receives an amount of penalization multiplied by t (available only for separable prox)
out : numpy.ndarray, shape=(n_params,), default=None
If not
None, the output is stored in the givenout. Otherwise, a new vector is created.
output : numpy.ndarray, shape=(n_coeffs,)
Same object as out
Notes
step must have the same size as coeffs whenever range is
None, or a size matching the one given by the range
otherwise
tick.prox.ProxEquality¶