FedSynthetic#
- class fl_sim.data_processing.FedSynthetic(alpha: float, beta: float, iid: bool, num_clients: int, num_classes: int = 10, dimension: int = 60, seed: int = 0, **extra_config: Any)#
基类:
FedDatasetFederated synthetic dataset.
This dataset is proposed in the FedProx paper [1] [2].
- 参数:
alpha (float) -- Parameters for generating synthetic data using normal distributions.
beta (float) -- Parameters for generating synthetic data using normal distributions.
iid (bool) -- Whether to generate iid data.
num_clients (int) -- The number of clients.
num_classes (int, default 10) -- The number of classes.
dimension (int, default 60) -- The dimension of data (feature).
seed (int, default 0) -- The random seed.
**extra_config (dict, optional) -- Extra configurations.
引用
- evaluate(probs: Tensor, truths: Tensor) Dict[str, float][源代码]#
Evaluation using predictions and ground truth.
- 参数:
probs (torch.Tensor) -- Predicted probabilities.
truths (torch.Tensor) -- Ground truth labels.
- 返回:
Evaluation results.
- 返回类型:
- get_dataloader(train_bs: int | None = None, test_bs: int | None = None, client_idx: int | None = None) Tuple[DataLoader, DataLoader][源代码]#
Get local dataloader at client client_idx or get the global dataloader.
- 参数:
train_bs (int, optional) -- Batch size for training dataloader. If
None, use default batch size.test_bs (int, optional) -- Batch size for testing dataloader. If
None, use default batch size.client_idx (int, optional) -- Index of the client to get dataloader. If
None, get the dataloader containing all data. Usually used for centralized training.
- 返回:
train_dl (
torch.utils.data.DataLoader) -- Training dataloader.test_dl (
torch.utils.data.DataLoader) -- Testing dataloader.
- load_partition_data(batch_size: int | None = None) tuple[源代码]#
Partition data into all local clients.
- 参数:
batch_size (int, optional) -- Batch size for dataloader. If
None, use default batch size.- 返回:
- train_clients_num:
int Number of training clients.
- train_clients_num:
- train_data_num:
int Number of training data.
- train_data_num:
- test_data_num:
int Number of testing data.
- test_data_num:
- train_data_global:
torch.utils.data.DataLoader Global training dataloader.
- train_data_global:
- test_data_global:
torch.utils.data.DataLoader Global testing dataloader.
- test_data_global:
- data_local_num_dict:
dict Number of local training data for each client.
- data_local_num_dict:
- train_data_local_dict:
dict Local training dataloader for each client.
- train_data_local_dict:
- test_data_local_dict:
dict Local testing dataloader for each client.
- test_data_local_dict:
- n_class:
int Number of classes.
- n_class:
- 返回类型:
- load_partition_data_distributed(process_id: int, batch_size: int | None = None) tuple[源代码]#
Get local dataloader at client process_id or get global dataloader.
- 参数:
- 返回:
- train_clients_num:
int Number of training clients.
- train_clients_num:
- train_data_num:
int Number of training data.
- train_data_num:
- train_data_global:
torch.utils.data.DataLoaderor None Global training dataloader.
- train_data_global:
- test_data_global:
torch.utils.data.DataLoaderor None Global testing dataloader.
- test_data_global:
- local_data_num:
int Number of local training data.
- local_data_num:
- train_data_local:
torch.utils.data.DataLoaderor None Local training dataloader.
- train_data_local:
- test_data_local:
torch.utils.data.DataLoaderor None Local testing dataloader.
- test_data_local:
- n_class:
int Number of classes.
- n_class:
- 返回类型: