openfl.component.collaborator
- class openfl.component.collaborator.Collaborator(collaborator_name, aggregator_uuid, federation_uuid, client, task_runner, task_config, opt_treatment='RESET', device_assignment_policy='CPU_ONLY', delta_updates=False, compression_pipeline=None, db_store_rounds=1, **kwargs)
The Collaborator object class.
- Class Attributes:
collaborator_name (str) – The common name for the collaborator.
aggregator_uuid (str) – The unique id for the client.
federation_uuid (str) – The unique id for the federation.
client (object) – The client object.
task_runner (object) – The task runner object.
task_config (dict) – The task configuration.
opt_treatment (str) – The optimizer state treatment.
device_assignment_policy (str) – The device assignment policy.
delta_updates (bool) – If True, only model delta gets sent. If False, whole model gets sent to collaborator.
compression_pipeline (object) – The compression pipeline.
db_store_rounds (int) – The number of rounds to store in the database.
single_col_cert_common_name (str) – The common name for the single column certificate.
Note
* - Plan setting.
- do_task(task, round_number)
Perform the specified task.
- Parameters:
task (list_of_str) – List of tasks.
round_number (int) – Actual round number.
- get_aggregated_tensor_from_aggregator(tensor_key, require_lossless=False)
Return the decompressed tensor associated with the requested tensor key.
If the key requests a compressed tensor (in the tag), the tensor will be decompressed before returning. If the key specifies an uncompressed tensor (or just omits a compressed tag), the decompression operation will be skipped.
- Parameters:
tensor_key (namedtuple) – The requested tensor.
require_lossless (bool) – Should compression of the tensor be allowed in flight? For the initial model, it may affect convergence to apply lossy compression. And metrics shouldn’t be compressed either.
- Returns:
nparray – The decompressed tensor associated with the requested tensor key.
- get_data_for_tensorkey(tensor_key)
Resolve the tensor corresponding to the requested tensorkey.
- Parameters:
tensor_key (namedtuple) – Tensorkey that will be resolved locally or
tensors. (remotely. May be the product of other)
- Returns:
nparray – The decompressed tensor associated with the requested tensor key.
- get_numpy_dict_for_tensorkeys(tensor_keys)
Get tensor dictionary for specified tensorkey set.
- Parameters:
tensor_keys (namedtuple) – Tensorkeys that will be resolved locally or remotely. May be the product of other tensors.
- get_tasks()
Get tasks from the aggregator.
- Returns:
tasks (list_of_str) – List of tasks.
round_number (int) – Actual round number.
sleep_time (int) – Sleep time.
time_to_quit (bool) – bool value for quit.
- named_tensor_to_nparray(named_tensor)
Convert named tensor to a numpy array.
- Parameters:
named_tensor (protobuf) – The tensor to convert to nparray.
- Returns:
decompressed_nparray (nparray) – The nparray converted.
- nparray_to_named_tensor(tensor_key, nparray)
Construct the NamedTensor Protobuf.
Includes logic to create delta, compress tensors with the TensorCodec, etc.
- Parameters:
tensor_key (namedtuple) – Tensorkey that will be resolved locally or remotely. May be the product of other tensors.
nparray – The decompressed tensor associated with the requested tensor key.
- Returns:
named_tensor (protobuf) – The tensor constructed from the nparray.
- run()
Run the collaborator.
- run_simulation()
Specific function for the simulation.
After the tasks have been performed for a roundquit, and then the collaborator object will be reinitialized after the next round.
- send_task_results(tensor_dict, round_number, task_name)
Send task results to the aggregator.
- Parameters:
tensor_dict (dict) – Tensor dictionary.
round_number (int) – Actual round number.
task_name (string) – Task name.
- set_available_devices(cuda: Tuple[str] = ())
Set available CUDA devices.
- Parameters:
cuda (Tuple[str]) – Tuple containing string indices of available CUDA devices, (‘1’, ‘3’).
|
Collaborator module. |