chaining#
Transformations constructed by chaining other transformations.
Classes#
Transformation constructed by chaining two transformations. |
- class ChainTT(transformation1, transformation2, hint=None)#
Bases:
tmlt.core.transformations.base.Transformation
Transformation constructed by chaining two transformations.
- Parameters
transformation1 (tmlt.core.transformations.base.Transformation) –
transformation2 (tmlt.core.transformations.base.Transformation) –
hint (Optional[Callable[[Any, Any], Any]]) –
- __init__(transformation1, transformation2, hint=None)#
Constructor.
- Parameters
transformation1 (
Transformation
Transformation
) – Transformation to apply first.transformation2 (
Transformation
Transformation
) – Transformation to apply second.hint ((
Any
,Any
) →Any
|None
Optional
[Callable
[[Any
,Any
],Any
]] (default:None
)) – An optional function to compute the intermediate metric value (after the first transformation, but before the second) forstability_relation()
. It takes in the same inputs asstability_relation()
, and is only required if the transformation’sstability_function()
raisesNotImplementedError
.
- stability_function(d_in)#
Returns the smallest d_out satisfied by the transformation.
Returns M.privacy_function(T.stability_function(d_in)).
where:
T1 is the first transformation applied (
transformation1
)T2 is the second transformation applied (
transformation2
)
- Parameters
d_in (Any) – Distance between inputs under input_metric.
- Raises
NotImplementedError – If T2.stability_function(T1.stability_function(d_in)) raises
NotImplementedError
.- Return type
Any
- stability_relation(d_in, d_out)#
Returns True only if outputs are close under close inputs.
Let d_mid = T1.stability_function(d_in), or hint(d_in, d_out) if T1.stability_function raises
NotImplementedError
.This returns True only if the following hold:
T1.stability_relation(d_in, d_mid)
T2.stability_relation(d_mid, d_out)
where:
T1 is the first transformation applied (
transformation1
)T2 is the second transformation applied (
transformation2
)hint is the hint passed to the constructor.
- Parameters
d_in (Any) – Distance between inputs under input_metric.
d_out (Any) – Distance between outputs under output_metric.
- Return type
- property transformation1#
Returns the first transformation being applied.
- Return type
- property transformation2#
Returns the second transformation being applied.
- Return type
- __call__(data)#
Performs transformation1 followed by transformation2.
- Parameters
data (Any) –
- Return type
Any
- property input_domain#
Return input domain for the measurement.
- Return type
- property input_metric#
Distance metric on input domain.
- Return type
- property output_domain#
Return input domain for the measurement.
- Return type
- property output_metric#
Distance metric on input domain.
- Return type
- __or__(other: Transformation) Transformation #
- __or__(other: tmlt.core.measurements.base.Measurement) tmlt.core.measurements.base.Measurement
Return this transformation chained with another component.