|  View source on GitHub | 
Runs a federated training_process.
tff.simulation.run_training_process(
    training_process: tff.templates.IterativeProcess,
    training_selection_fn: Callable[[int], Any],
    total_rounds: int,
    evaluation_fn: Optional[Callable[[Any, Any], MetricsType]] = None,
    evaluation_selection_fn: Optional[Callable[[int], Any]] = None,
    rounds_per_evaluation: int = 1,
    program_state_manager: Optional[tff.program.ProgramStateManager] = None,
    rounds_per_saving_program_state: int = 1,
    metrics_managers: Optional[Iterable[release_manager_lib.ReleaseManager]] = None
)
The following tff.Computation types signaures are required:
- training_process.initialize:- ( -> state).
- training_process.next:- <state, client_data> -> <state, metrics>
- evaulation_fn:- <state, client_data> -> metrics
This function performs up to total_rounds updates to the state of the
given training_process. At each training round, this update occurs by
invoking training_process.next with state and the output of
training_selection_fn. Depending on rounds_per_evaluation and
rounds_per_saving_program_state, each training round may be followed by an
invocation of the evaluation_fn and by saving the program state.
In addition to the training metrics and evaluation metrics, this function adds the following performance metrics (key and descriptions):
- tff.simulation.ROUND_NUMBER_KEY: The round number.
- tff.simulation.TRAINING_TIME_KEY: The amount of time (in seconds) it takes to run one round of training.
- tff.simulation.EVALUATION_TIME_KEY: The amount of time (in seconds) it takes to run one round of evaluation.
| Args | |
|---|---|
| training_process | A tff.templates.IterativeProcessto run for training. | 
| training_selection_fn | A Callableaccepting an integer round number, and
returning a list of client data to use for trainig in that round. | 
| total_rounds | The number of training rounds to run. | 
| evaluation_fn | An optional callable accepting the state of training_processand the output ofevaluation_selection_fn, and
returning a mutable mapping with string-valued keys. | 
| evaluation_selection_fn | A optional Callableaccepting an integer round
number, and returning a list of client data to use for evaluation in that
round. | 
| rounds_per_evaluation | The number of training rounds to run between each
invocation of evaluation_fn. | 
| program_state_manager | An optional tff.program.ProgramStateManagerto use
to save program state for fault tolerance. | 
| rounds_per_saving_program_state | The number of training rounds to run between saving program state. | 
| metrics_managers | An optional list of tff.program.ReleaseManagerss to use
to save metrics. | 
| Returns | |
|---|---|
| The stateof the training process after training. |