tff.templates.concatenate_measured_processes
Stay organized with collections
Save and categorize content based on your preferences.
Creates a concatenation of multiple tff.templates.MeasuredProcess
es.
tff.templates.concatenate_measured_processes(
measured_processes: collections.OrderedDict[str, MeasuredProcess]
) -> tff.templates.MeasuredProcess
For example, given y = f(x)
and z = g(y)
, this produces a new
<y, z> = <f(x), g(y)>
that concatenates the two MeasuredProcess
es.
Guidance for Concatenation
Two MeasuredProcess
es F(x) and G(y) can be concatenated into a new
MeasuredProcess
called C with the following properties, each is the
concatenation of that of input MeasuredProcess
es as an OrderedDict
:
C.state == <F=F.state, G=G.state>
.
C.next(C.state, <x, y>).result ==
<F=F.next(F.state, x).result, G=G.next(G.state, y).result>
.
C.measurements == <F=F.measurements, G=G.measurements>
.
The resulting concatenation C would have the following type signatures:
initialize: ( -> <F=F.initialize, G=G.initialize>)
next: (<<F=F.state, G=G.state>, <F=F.input, G=G.input>> ->
<state=<F=F.state, G=G.state>,
result=<F=F.result, G=G.result>,
measurements=<F=F.measurements, G=G.measurements>>)
Note that the guidance for concatenation is not strict and details are allowed
to differ.
Args |
measured_processes
|
An OrderedDict of MeasuredProcess es with keys as the
process name and values as the corresponding MeasuredProcess .
|
Returns |
A MeasuredProcess of the concatenation of input MeasuredProcess es.
|
Raises |
TypeError
|
If the MeasuredProcess es have the state at different placement
(e.g. F.state@SERVER, G.state@CLIENTS).
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-09-20 UTC.
[null,null,["Last updated 2024-09-20 UTC."],[],[],null,["# tff.templates.concatenate_measured_processes\n\n\u003cbr /\u003e\n\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/federated/blob/v0.87.0 Version 2.0, January 2004 Licensed under the Apache License, Version 2.0 (the) |\n\nCreates a concatenation of multiple [`tff.templates.MeasuredProcess`](../../tff/templates/MeasuredProcess)es. \n\n tff.templates.concatenate_measured_processes(\n measured_processes: collections.OrderedDict[str, MeasuredProcess]\n ) -\u003e ../../tff/templates/MeasuredProcess\n\nFor example, given `y = f(x)` and `z = g(y)`, this produces a new\n`\u003cy, z\u003e = \u003cf(x), g(y)\u003e` that concatenates the two `MeasuredProcess`es.\n\n*Guidance for Concatenation*\nTwo `MeasuredProcess`es *F(x)* and *G(y)* can be concatenated into a new\n`MeasuredProcess` called *C* with the following properties, each is the\nconcatenation of that of input `MeasuredProcess`es as an `OrderedDict`:\n\n- `C.state == \u003cF=F.state, G=G.state\u003e`.\n- `C.next(C.state, \u003cx, y\u003e).result ==\n \u003cF=F.next(F.state, x).result, G=G.next(G.state, y).result\u003e`.\n- `C.measurements == \u003cF=F.measurements, G=G.measurements\u003e`.\n\nThe resulting concatenation *C* would have the following type signatures:\ninitialize: `( -\u003e \u003cF=F.initialize, G=G.initialize\u003e)`\nnext: `(\u003c\u003cF=F.state, G=G.state\u003e, \u003cF=F.input, G=G.input\u003e\u003e -\u003e\n\u003cstate=\u003cF=F.state, G=G.state\u003e,\nresult=\u003cF=F.result, G=G.result\u003e,\nmeasurements=\u003cF=F.measurements, G=G.measurements\u003e\u003e)`\n\nNote that the guidance for concatenation is not strict and details are allowed\nto differ.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------------------|--------------------------------------------------------------------------------------------------------------------------|\n| `measured_processes` | An `OrderedDict` of `MeasuredProcess`es with keys as the process name and values as the corresponding `MeasuredProcess`. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `MeasuredProcess` of the concatenation of input `MeasuredProcess`es. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|-------------|----------------------------------------------------------------------------------------------------------|\n| `TypeError` | If the `MeasuredProcess`es have the state at different placement (e.g. F.state@SERVER, G.state@CLIENTS). |\n\n\u003cbr /\u003e"]]