From 02deb75f63e6d4530d3ccb602ffb81fa1c8ef925 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Mon, 20 Sep 2021 18:36:32 +0800 Subject: [PATCH 01/21] add DataPartitioner: CIFAR10 balance iid, unbalance iid (log-normal) done; not tested --- fedlab/utils/dataset/partition.py | 155 ++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 fedlab/utils/dataset/partition.py diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py new file mode 100644 index 00000000..285ea0fb --- /dev/null +++ b/fedlab/utils/dataset/partition.py @@ -0,0 +1,155 @@ +# -*- coding: utf-8 -*- +# @Time : 9/20/21 3:06 PM +# @Author : Siqi Liang +# @Contact : zszxlsq@gmail.com +# @File : partition.py +# @Software: PyCharm + +import numpy as np + +import torch +import torchvision + + +class DataPartitioner(object): + def partition(self): + raise NotImplementedError + + def __getitem__(self, index): + raise NotImplementedError + + def __len__(self): + raise NotImplementedError + + +class CIFAR10Partitioner(DataPartitioner): + def __init__(self, targets, num_clients, + partition="iid", + niid_method=None, + num_shards=None, + dirichlet=None, + balance=True, + unbalance_sgm=0, + seed=None): + """ + + Args: + targets (list or numpy.ndarray): Targets of dataset for partition. Each element is in range of [0, 1, ..., 9]. + num_clients (int): Number of clients for data partition. + partition (str, optional): Partition type, only ``"iid"`` or ``niid`` supported. Default as ``"iid"``. + num_shards (int optional): Number of shards in non-iid partition. Only works if ``partition="niid"`` and ``dirichlet=None``. Default as ``None``. + dirichlet (float, optional): Dirichlet distribution parameter for non-iid partition. Only works if ``partition="niid"`` and ``num_shards=None``. Default as ``None``. + balance (bool, optional): Balanced partition over all clients or not. Default as ``True``. + unbalance_sgm (float, optional): Log-normal distribution variance for unbalanced data partition over clients. Default as ``0`` for balanced partition. + """ + self.targets = np.array(targets) # with shape (num_samples,) + self.num_samples = self.targets.shape[0] + self.num_classes = 10 + self.num_clients = num_clients + self.client_dict = dict() + self.partition = partition + self.client_sample_nums = None # number of samples for each client, a list or numpy vector + self.rng = np.random.default_rng(seed) + + # set balance/unbalance variables + self.balance = balance + if balance is True: + self.unbalance_sgm = 0 + elif balance is False: + assert isinstance(unbalance_sgm, float), \ + f"'unbalance_sgm' for Log-Normal distribution should be float, " \ + f"not {type(unbalance_sgm)}" + self.unbalance_sgm = unbalance_sgm + else: + raise ValueError(f"'balance' should only be bool, not {type(balance)}.") + + # set iid/non-iid variables + if self.partition == "iid": + self.niid_method = None + self.dirichlet = None + self.num_shards = None + + elif self.partition == "niid": + self.niid_method = niid_method + if self.niid_method == "shards": + self.dirichlet = None + assert isinstance(num_shards, int), \ + f"num_shards should be int for non-iid partition, not {type(num_shards)}." + self.num_shards = num_shards + elif self.niid_method == "dirichlet": + assert isinstance(dirichlet, float), \ + f"'dirichlet' for non-iid partition using Dirichlet distribution should be " \ + f"float, not {type(dirichlet)}" + self.num_shards = None + else: + raise ValueError( + f"'niid_method' can only be 'shards' or 'dirichlet', {niid_method} is not " + f"valid.") + + self._partition() # perform data partition according to setting + pass + + def _partition(self): + if self.balance is True and self.partition == "iid": + self._iid_balance() + elif self.balance is False and self.partition == "iid": + self._iid_unbalance() + elif self.balance is True and self.partition == "niid": + self._niid_balance() + else: # for balance and niid partition + self._niid_unbalance() + + def _iid_balance(self): + rand_perm = self.rng.permutation(self.num_samples) + num_samples_per_client = int(self.num_samples / self.num_clients) + self.client_sample_nums = np.ones(self.num_clients) * num_samples_per_client + num_cumsum = np.concatenate(([0], np.cumsum(self.client_sample_nums))) + self.client_dict = self._slice_indices(num_cumsum, rand_perm) + + def _iid_unbalance(self): + rand_perm = self.rng.permutation(self.num_samples) + num_samples_per_client = int(self.num_samples / self.num_clients) + client_sample_nums = self.rng.lognormal(mean=np.log(num_samples_per_client), + sigma=self.unbalance_sgm, + size=self.num_clients) + client_sample_nums = ( + client_sample_nums / np.sum(client_sample_nums) * self.num_samples).astype(int) + diff = np.sum(client_sample_nums) - self.num_samples # diff <= 0 + + # Add/Subtract the excess number starting from first client + if diff != 0: + for cid in range(self.num_clients): + if client_sample_nums[cid] > diff: + client_sample_nums[cid] -= diff + break + + self.client_sample_nums = client_sample_nums + num_cumsum = np.concatenate(([0], np.cumsum(self.client_sample_nums))) + self.client_dict = self._slice_indices(num_cumsum, rand_perm) + + def _niid_balance(self): + pass + + def _niid_unbalance(self): + pass + + def _slice_indices(self, num_cumsum, rand_perm): + client_dict = dict() + for cid in range(self.num_clients): + client_dict[cid] = rand_perm[num_cumsum[cid]: num_cumsum[cid + 1]] + return client_dict + + def __getitem__(self, index): + """ + + Args: + index (int): Client ID. + + Returns: + list: List of sample indices for client ID ``index``. + + """ + return self.client_dict[index] + + def __len__(self): + return len(self.client_dict) From 2c8ba533597c3aea768a27fd14394307372dc8df Mon Sep 17 00:00:00 2001 From: AgentDS Date: Mon, 20 Sep 2021 21:03:23 +0800 Subject: [PATCH 02/21] data partition: niid balance shard method done --- fedlab/utils/dataset/partition.py | 85 ++++++++++++++++++++++++++----- fedlab/utils/dataset/slicing.py | 8 +-- 2 files changed, 75 insertions(+), 18 deletions(-) diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index 285ea0fb..bbaeddeb 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -5,6 +5,7 @@ # @File : partition.py # @Software: PyCharm +import warnings import numpy as np import torch @@ -23,6 +24,35 @@ def __len__(self): class CIFAR10Partitioner(DataPartitioner): + """CIFAR10 data partitioner. + + Partition CIFAR10 for specific client number. Current supported partition schemes: balanced iid, + unbalanced iid, balanced non-iid, unbalanced non-iid. + + _Balance_ refers to that sample numbers for different clients are the same. For unbalance + method, sample number for each client is drown from Log-Normal distribution with variance + ``unbalanced_sgm``. When ``unbalanced_sgm=0``, partition is balanced. For more information, + please refer to paper `Federated Learning Based on Dynamic Regularization `_. + + For iid and non-iid, we use random sampling for iid, and use ``"shards"`` method or + ``"dirichlet"`` method for non-iid partition. ``"shards"`` is non-iid method used in FedAvg + `paper `_. ``"dirichlet"`` is non-iid method used in + `Federated Learning with Matched Averaging `_ and + `Bayesian nonparametric federated learning of neural networks `_. + + + + + Args: + targets (list or numpy.ndarray): Targets of dataset for partition. Each element is in range of [0, 1, ..., 9]. + num_clients (int): Number of clients for data partition. + partition (str, optional): Partition type, only ``"iid"`` or ``niid`` supported. Default as ``"iid"``. + num_shards (int optional): Number of shards in non-iid partition. Only works if ``partition="niid"`` and ``dirichlet=None``. Default as ``None``. + dirichlet (float, optional): Dirichlet distribution parameter for non-iid partition. Only works if ``partition="niid"`` and ``num_shards=None``. Default as ``None``. + balance (bool, optional): Balanced partition over all clients or not. Default as ``True``. + unbalance_sgm (float, optional): Log-normal distribution variance for unbalanced data partition over clients. Default as ``0`` for balanced partition. + """ + def __init__(self, targets, num_clients, partition="iid", niid_method=None, @@ -31,17 +61,6 @@ def __init__(self, targets, num_clients, balance=True, unbalance_sgm=0, seed=None): - """ - - Args: - targets (list or numpy.ndarray): Targets of dataset for partition. Each element is in range of [0, 1, ..., 9]. - num_clients (int): Number of clients for data partition. - partition (str, optional): Partition type, only ``"iid"`` or ``niid`` supported. Default as ``"iid"``. - num_shards (int optional): Number of shards in non-iid partition. Only works if ``partition="niid"`` and ``dirichlet=None``. Default as ``None``. - dirichlet (float, optional): Dirichlet distribution parameter for non-iid partition. Only works if ``partition="niid"`` and ``num_shards=None``. Default as ``None``. - balance (bool, optional): Balanced partition over all clients or not. Default as ``True``. - unbalance_sgm (float, optional): Log-normal distribution variance for unbalanced data partition over clients. Default as ``0`` for balanced partition. - """ self.targets = np.array(targets) # with shape (num_samples,) self.num_samples = self.targets.shape[0] self.num_classes = 10 @@ -103,7 +122,7 @@ def _iid_balance(self): rand_perm = self.rng.permutation(self.num_samples) num_samples_per_client = int(self.num_samples / self.num_clients) self.client_sample_nums = np.ones(self.num_clients) * num_samples_per_client - num_cumsum = np.concatenate(([0], np.cumsum(self.client_sample_nums))) + num_cumsum = np.concatenate(([0], np.cumsum(self.client_sample_nums))).astype(int) self.client_dict = self._slice_indices(num_cumsum, rand_perm) def _iid_unbalance(self): @@ -124,11 +143,49 @@ def _iid_unbalance(self): break self.client_sample_nums = client_sample_nums - num_cumsum = np.concatenate(([0], np.cumsum(self.client_sample_nums))) + num_cumsum = np.concatenate(([0], np.cumsum(self.client_sample_nums))).astype(int) self.client_dict = self._slice_indices(num_cumsum, rand_perm) def _niid_balance(self): - pass + if self.niid_method == "shards": + size_shard = int(self.num_samples / self.num_shards) + if self.num_samples % self.num_shards != 0: + warnings.warn("warning: length of dataset isn't divided exactly by num_shards. " + "Some samples will be dropped.") + + shards_per_client = int(self.num_shards / self.num_clients) + if self.num_shards % self.num_clients != 0: + warnings.warn("warning: num_shards isn't divided exactly by num_clients. " + "Some shards will be dropped.") + + indices = np.arange(self.num_samples) + # sort sample indices according to labels + indices_targets = np.vstack((indices, self.targets)) + indices_targets = indices_targets[:, indices_targets[1, :].argsort()] + # corresponding labels after sorting are [0, .., 0, 1, ..., 1, ...] + sorted_indices = indices_targets[0, :] + + # permute shards idx, and slice shards_per_client shards for each client + rand_perm = self.rng.permutation(self.num_shards) + num_client_shards = np.ones(self.num_clients) * shards_per_client + # sample index must be int + num_cumsum = np.concatenate(([0], np.cumsum(num_client_shards))).astype(int) + # shard indices for each client + client_shards_dict = self._slice_indices(num_cumsum, rand_perm) + + # map shard idx to sample idx for each client + client_dict = dict() + for cid in range(self.num_clients): + shards_set = client_shards_dict[cid] + current_indices = [ + sorted_indices[shard_id * size_shard: (shard_id + 1) * size_shard] + for shard_id in shards_set] + client_dict[cid] = np.concatenate(current_indices, axis=0) + + else: # Dirichlet for non-iid + pass + + self.client_dict = client_dict def _niid_unbalance(self): pass diff --git a/fedlab/utils/dataset/slicing.py b/fedlab/utils/dataset/slicing.py index c5ffd9e9..6e9ff97e 100644 --- a/fedlab/utils/dataset/slicing.py +++ b/fedlab/utils/dataset/slicing.py @@ -30,19 +30,19 @@ def noniid_slicing(dataset, num_clients, num_shards): Each client will get ``int(num_shards/num_clients)`` shards. Returns: - dict: ``{ '0': indices of dataset, '1': indices of dataset, ..., 'k': indices of dataset }`` + dict: ``{ 0: indices of dataset, 1: indices of dataset, ..., k: indices of dataset }`` """ total_sample_nums = len(dataset) size_of_shards = int(total_sample_nums / num_shards) if total_sample_nums % num_shards != 0: warnings.warn( - "warning: the length of dataset isn't divided exactly by num_shard.some samples will be wasted." + "warning: the length of dataset isn't divided exactly by num_shard.some samples will be dropped." ) # the number of shards that each one of clients can get shard_pc = int(num_shards / num_clients) if num_shards % num_clients != 0: warnings.warn( - "warning: num_shard isn't divided exacly by num_clients. some samples will be wasted." + "warning: num_shard isn't divided exactly by num_clients. some samples will be dropped." ) dict_users = {i: np.array([], dtype='int64') for i in range(num_clients)} @@ -77,7 +77,7 @@ def random_slicing(dataset, num_clients): num_clients (int): the number of client. Returns: - dict: ``{ '0': indices of dataset, '1': indices of dataset, ..., 'k': indices of dataset }`` + dict: ``{ 0: indices of dataset, 1: indices of dataset, ..., k: indices of dataset }`` """ num_items = int(len(dataset) / num_clients) dict_users, all_idxs = {}, [i for i in range(len(dataset))] From cd3c3a45acf6c1e5b612daa087adefc5ce20d392 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Mon, 20 Sep 2021 21:52:38 +0800 Subject: [PATCH 03/21] add partition report funciton in fedlab.utils.functional --- fedlab/utils/dataset/partition.py | 2 +- fedlab/utils/functional.py | 99 ++++++++++++++++++++++++++++++- 2 files changed, 97 insertions(+), 4 deletions(-) diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index bbaeddeb..a450a0fb 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -181,7 +181,7 @@ def _niid_balance(self): sorted_indices[shard_id * size_shard: (shard_id + 1) * size_shard] for shard_id in shards_set] client_dict[cid] = np.concatenate(current_indices, axis=0) - + else: # Dirichlet for non-iid pass diff --git a/fedlab/utils/functional.py b/fedlab/utils/functional.py index 8599036d..84b29dc8 100644 --- a/fedlab/utils/functional.py +++ b/fedlab/utils/functional.py @@ -13,14 +13,17 @@ # limitations under the License. import torch + import json import pynvml import numpy as np import pickle +from collections import Counter class AverageMeter(object): - """Record train infomation""" + """Record metrics information""" + def __init__(self): self.reset() @@ -46,7 +49,6 @@ def evaluate(model, criterion, test_loader): acc_ = AverageMeter() with torch.no_grad(): for inputs, labels in test_loader: - inputs = inputs.to(gpu) labels = labels.to(gpu) @@ -124,4 +126,95 @@ def save_dict(dict, path): def load_dict(path): with open(path, 'rb') as f: - return pickle.load(f) \ No newline at end of file + return pickle.load(f) + + +def partition_report(targets, data_indices, class_num=None, verbose=True, file=None): + """Generate data partition report for clients in ``data_indices``. + + Generate data partition report for each client according to ``data_indices``, including + ratio of each class and dataset size in current client. Report can be printed in screen or into + csv file. + + Args: + targets (list or numpy.ndarray): Targets for all data samples, with each element is in range of ``0`` to ``class_num-1``. + data_indices (dict): Dict of ``client_id: [data indices]``. + class_num (int, optional): Total number of classes. If set to ``None``, then ``class_num = max(targets) + 1``. + verbose (bool, optional): Whether print data partition report in screen. Default as ``True``. + file (str, optional): Output file name of data partition report. If ``None``, then no output in file. Default as ``None``. + + Examples: + First generate synthetic data labels and data partition to obtain ``data_indices`` + (``{ client_id: sample indices}``): + + >>> sample_num = 15 + >>> class_num = 4 + >>> clients_num = 3 + >>> num_per_client = int(sample_num/clients_num) + >>> labels = np.random.randint(class_num, size=sample_num) # generate 15 labels, each label is 0 to 3 + >>> rand_per = np.random.permutation(sample_num) + >>> # partition synthetic data into 3 clients + >>> data_indices = {0: rand_per[0:num_per_client], + ... 1: rand_per[num_per_client:num_per_client*2], + ... 2: rand_per[num_per_client*2:num_per_client*3]} + + Check ``data_indices`` may look like: + + >>> data_indices + {0: array([8, 6, 5, 7, 2]), + 1: array([ 3, 10, 14, 4, 1]), + 2: array([13, 9, 12, 11, 0])} + + Now generate partition report for each client and each class: + + >>> partition_report(labels, data_indices, class_num=class_num, verbose=True, file=None) + Class frequencies: + client,class0,class1,class2,class3,Amount + Client 0,0.200,0.00,0.200,0.600,5 + Client 1,0.400,0.200,0.200,0.200,5 + Client 2,0.00,0.400,0.400,0.200,5 + + """ + if not verbose and file is None: + print("No partition report generated") + return + + if not isinstance(targets, np.ndarray): + targets = np.array(targets) + + if not class_num: + class_num = max(targets) + 1 + + sorted_cid = sorted(data_indices.keys()) # sort client id in ascending order + + header_line = "Class frequencies:" + col_name = "client," + ','.join([f"class{i}" for i in range(class_num)]) + ",Amount" + + if verbose: + print(header_line) + print(col_name) + if file is not None: + reports = [header_line, col_name] + else: + reports = None + + for client_id in sorted_cid: + indices = data_indices[client_id] + client_targets = targets[indices] + client_sample_num = len(indices) # total number of samples of current client + client_target_cnt = Counter(client_targets) # { cls1: num1, cls2: num2, ... } + + report_line = f"Client {client_id:3d}," + \ + ','.join([ + f"{client_target_cnt[cls] / client_sample_num:.3f}" if cls in client_target_cnt else "0.00" + for cls in range(class_num)]) + \ + f",{client_sample_num}" + if verbose: + print(report_line) + if file is not None: + reports.append(report_line) + + if file is not None: + fh = open(file, "w") + fh.write("\n".join(reports)) + fh.close() From 647e79462622d36dd48cb998a99768a1131c512a Mon Sep 17 00:00:00 2001 From: AgentDS Date: Mon, 20 Sep 2021 22:03:43 +0800 Subject: [PATCH 04/21] add docstring for partition report --- docs/source/conf.py | 6 ++++-- fedlab/utils/functional.py | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 209b97ed..ef91496f 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -26,6 +26,7 @@ # The full version, including alpha/beta/rc tags import fedlab + release = fedlab.__version__ # -- General configuration --------------------------------------------------- @@ -50,7 +51,7 @@ bibtex_bibfiles = ['refs.bib'] bibtex_default_style = 'unsrt' -autodoc_mock_imports = ["numpy", "torch", "torchvision"] +autodoc_mock_imports = ["numpy", "torch", "torchvision", "pandas"] autoclass_content = 'both' # Add any paths that contain templates here, relative to this directory. @@ -65,7 +66,8 @@ # Add more mapping for 'sphinx.ext.intersphinx' intersphinx_mapping = {'python': ('https://docs.python.org/3', None), 'PyTorch': ('http://pytorch.org/docs/master/', None), - 'numpy': ('https://numpy.org/doc/stable/', None)} + 'numpy': ('https://numpy.org/doc/stable/', None), + 'pandas': ('https://pandas.pydata.org/pandas-docs/dev/', None)} # autosectionlabel throws warnings if section names are duplicated. # The following tells autosectionlabel to not throw a warning for diff --git a/fedlab/utils/functional.py b/fedlab/utils/functional.py index 84b29dc8..d9f9dbb3 100644 --- a/fedlab/utils/functional.py +++ b/fedlab/utils/functional.py @@ -134,7 +134,8 @@ def partition_report(targets, data_indices, class_num=None, verbose=True, file=N Generate data partition report for each client according to ``data_indices``, including ratio of each class and dataset size in current client. Report can be printed in screen or into - csv file. + file. The output format is comma-separated values which can be read by :func:`pandas.read_csv` + or :func:`csv.reader`. Args: targets (list or numpy.ndarray): Targets for all data samples, with each element is in range of ``0`` to ``class_num-1``. From 0ec28a3dbd223122dc13190a79d744a50905abc0 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Mon, 20 Sep 2021 23:46:25 +0800 Subject: [PATCH 05/21] add license for data partition --- fedlab/utils/dataset/partition.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index a450a0fb..ead93350 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -1,9 +1,16 @@ -# -*- coding: utf-8 -*- -# @Time : 9/20/21 3:06 PM -# @Author : Siqi Liang -# @Contact : zszxlsq@gmail.com -# @File : partition.py -# @Software: PyCharm +# Copyright 2021 Peng Cheng Laboratory (http://www.szpclab.com/) and FedLab Authors (smilelab.group) + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import warnings import numpy as np @@ -29,7 +36,7 @@ class CIFAR10Partitioner(DataPartitioner): Partition CIFAR10 for specific client number. Current supported partition schemes: balanced iid, unbalanced iid, balanced non-iid, unbalanced non-iid. - _Balance_ refers to that sample numbers for different clients are the same. For unbalance + "Balance" refers to FL scenario that sample numbers for different clients are the same. For unbalance method, sample number for each client is drown from Log-Normal distribution with variance ``unbalanced_sgm``. When ``unbalanced_sgm=0``, partition is balanced. For more information, please refer to paper `Federated Learning Based on Dynamic Regularization `_. @@ -40,9 +47,6 @@ class CIFAR10Partitioner(DataPartitioner): `Federated Learning with Matched Averaging `_ and `Bayesian nonparametric federated learning of neural networks `_. - - - Args: targets (list or numpy.ndarray): Targets of dataset for partition. Each element is in range of [0, 1, ..., 9]. num_clients (int): Number of clients for data partition. From cc91cf50d4232f3e05b4ed551e7392a869bec777 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Wed, 22 Sep 2021 11:17:35 +0800 Subject: [PATCH 06/21] cifar10 partition done, need to refactor and test --- fedlab/utils/dataset/functional.py | 22 ++++ fedlab/utils/dataset/partition.py | 175 ++++++++++++++++++++++++----- 2 files changed, 171 insertions(+), 26 deletions(-) create mode 100644 fedlab/utils/dataset/functional.py diff --git a/fedlab/utils/dataset/functional.py b/fedlab/utils/dataset/functional.py new file mode 100644 index 00000000..9e3e38f4 --- /dev/null +++ b/fedlab/utils/dataset/functional.py @@ -0,0 +1,22 @@ +# Copyright 2021 Peng Cheng Laboratory (http://www.szpclab.com/) and FedLab Authors (smilelab.group) + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import numpy as np + + +def split_indices(num_cumsum, rand_perm): + client_indices_pairs = [(cid, idxs) for cid, idxs in + enumerate(np.split(rand_perm, num_cumsum))] + client_dict = dict(client_indices_pairs) + return client_dict diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index ead93350..bff06b29 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -18,6 +18,8 @@ import torch import torchvision +from . import functional as F + class DataPartitioner(object): def partition(self): @@ -61,7 +63,7 @@ def __init__(self, targets, num_clients, partition="iid", niid_method=None, num_shards=None, - dirichlet=None, + dirichlet_alpha=None, balance=True, unbalance_sgm=0, seed=None): @@ -72,7 +74,8 @@ def __init__(self, targets, num_clients, self.client_dict = dict() self.partition = partition self.client_sample_nums = None # number of samples for each client, a list or numpy vector - self.rng = np.random.default_rng(seed) + # self.rng = np.random.default_rng(seed) # rng currently not supports randint + np.random.seed(seed) # set balance/unbalance variables self.balance = balance @@ -95,14 +98,14 @@ def __init__(self, targets, num_clients, elif self.partition == "niid": self.niid_method = niid_method if self.niid_method == "shards": - self.dirichlet = None + self.dirichlet_alpha = None assert isinstance(num_shards, int), \ f"num_shards should be int for non-iid partition, not {type(num_shards)}." self.num_shards = num_shards elif self.niid_method == "dirichlet": - assert isinstance(dirichlet, float), \ - f"'dirichlet' for non-iid partition using Dirichlet distribution should be " \ - f"float, not {type(dirichlet)}" + assert isinstance(dirichlet_alpha, float), \ + f"'dirichlet_alpha' for non-iid partition using Dirichlet distribution should " \ + f"be float, not {type(dirichlet_alpha)}" self.num_shards = None else: raise ValueError( @@ -110,7 +113,6 @@ def __init__(self, targets, num_clients, f"valid.") self._partition() # perform data partition according to setting - pass def _partition(self): if self.balance is True and self.partition == "iid": @@ -123,18 +125,18 @@ def _partition(self): self._niid_unbalance() def _iid_balance(self): - rand_perm = self.rng.permutation(self.num_samples) + rand_perm = np.random.permutation(self.num_samples) num_samples_per_client = int(self.num_samples / self.num_clients) self.client_sample_nums = np.ones(self.num_clients) * num_samples_per_client - num_cumsum = np.concatenate(([0], np.cumsum(self.client_sample_nums))).astype(int) - self.client_dict = self._slice_indices(num_cumsum, rand_perm) + num_cumsum = np.cumsum(self.client_sample_nums).astype(int) + self.client_dict = F.split_indices(num_cumsum, rand_perm) def _iid_unbalance(self): - rand_perm = self.rng.permutation(self.num_samples) + rand_perm = np.random.permutation(self.num_samples) num_samples_per_client = int(self.num_samples / self.num_clients) - client_sample_nums = self.rng.lognormal(mean=np.log(num_samples_per_client), - sigma=self.unbalance_sgm, - size=self.num_clients) + client_sample_nums = np.random.lognormal(mean=np.log(num_samples_per_client), + sigma=self.unbalance_sgm, + size=self.num_clients) client_sample_nums = ( client_sample_nums / np.sum(client_sample_nums) * self.num_samples).astype(int) diff = np.sum(client_sample_nums) - self.num_samples # diff <= 0 @@ -147,8 +149,8 @@ def _iid_unbalance(self): break self.client_sample_nums = client_sample_nums - num_cumsum = np.concatenate(([0], np.cumsum(self.client_sample_nums))).astype(int) - self.client_dict = self._slice_indices(num_cumsum, rand_perm) + num_cumsum = np.cumsum(self.client_sample_nums).astype(int) + self.client_dict = F.split_indices(num_cumsum, rand_perm) def _niid_balance(self): if self.niid_method == "shards": @@ -170,12 +172,12 @@ def _niid_balance(self): sorted_indices = indices_targets[0, :] # permute shards idx, and slice shards_per_client shards for each client - rand_perm = self.rng.permutation(self.num_shards) + rand_perm = np.random.permutation(self.num_shards) num_client_shards = np.ones(self.num_clients) * shards_per_client # sample index must be int - num_cumsum = np.concatenate(([0], np.cumsum(num_client_shards))).astype(int) + num_cumsum = np.cumsum(num_client_shards).astype(int) # shard indices for each client - client_shards_dict = self._slice_indices(num_cumsum, rand_perm) + client_shards_dict = F.split_indices(num_cumsum, rand_perm) # map shard idx to sample idx for each client client_dict = dict() @@ -187,18 +189,139 @@ def _niid_balance(self): client_dict[cid] = np.concatenate(current_indices, axis=0) else: # Dirichlet for non-iid - pass + # code below is modified from FedDyn Dirichlet partition + rand_perm = np.random.permutation(self.num_samples) + targets = self.targets[rand_perm] + num_samples_per_client = int(self.num_samples / self.num_clients) + self.client_sample_nums = (np.ones(self.num_clients) * num_samples_per_client).astype( + int) + rest_client_sample_nums = (np.ones(self.num_clients) * num_samples_per_client).astype( + int) + + class_priors = np.random.dirichlet(alpha=[self.dirichlet_alpha] * self.num_classes, + size=self.num_clients) + prior_cumsum = np.cumsum(class_priors, axis=1) + idx_list = [np.where(targets == i)[0] for i in range(self.num_classes)] + class_amount = [len(idx_list[i]) for i in range(self.num_classes)] + + client_indices = [np.zeros(rest_client_sample_nums[cid]).astype(np.int64) for cid in + range(self.num_clients)] + + while np.sum(rest_client_sample_nums) != 0: + curr_cid = np.random.randint(self.num_clients) + # If current node is full resample a client + print('Remaining Data: %d' % np.sum(rest_client_sample_nums)) + if rest_client_sample_nums[curr_cid] <= 0: + continue + rest_client_sample_nums[curr_cid] -= 1 + curr_prior = prior_cumsum[curr_cid] + while True: + curr_class = np.argmax(np.random.uniform() <= curr_prior) + # Redraw class label if no rest in current class samples + if class_amount[curr_class] <= 0: + continue + class_amount[curr_class] -= 1 + client_indices[curr_cid][rest_client_sample_nums[curr_cid]] = \ + idx_list[curr_class][class_amount[curr_class]] + + break + + client_dict = dict([(cid, client_indices[cid]) for cid in range(self.num_clients)]) self.client_dict = client_dict def _niid_unbalance(self): - pass + if self.niid_method == "shards": + size_shard = int(self.num_samples / self.num_shards) + num_shards_per_client = int(self.num_shards / self.num_clients) + client_shards_nums = np.random.lognormal(mean=np.log(num_shards_per_client), + sigma=self.unbalance_sgm, + size=self.num_clients) + client_shards_nums = ( + client_shards_nums / np.sum(client_shards_nums) * self.num_shards).astype(int) + diff = np.sum(client_shards_nums) - self.num_shards # diff <= 0 + + # Add/Subtract the excess number starting from first client + if diff != 0: + for cid in range(self.num_clients): + if client_shards_nums[cid] > diff: + client_shards_nums[cid] -= diff + break + + self.client_shards_nums = client_shards_nums + # permute shards idx, and slice shards_per_client shards for each client + rand_perm = np.random.permutation(self.num_shards) + num_cumsum = np.cumsum(self.client_shards_nums).astype(int) + # shard indices for each client + client_shards_dict = F.split_indices(num_cumsum, rand_perm) + + # sort sample indices according to labels + indices = np.arange(self.num_samples) + indices_targets = np.vstack((indices, self.targets)) + indices_targets = indices_targets[:, indices_targets[1, :].argsort()] + # corresponding labels after sorting are [0, .., 0, 1, ..., 1, ...] + sorted_indices = indices_targets[0, :] - def _slice_indices(self, num_cumsum, rand_perm): - client_dict = dict() - for cid in range(self.num_clients): - client_dict[cid] = rand_perm[num_cumsum[cid]: num_cumsum[cid + 1]] - return client_dict + # map shard idx to sample idx for each client + client_dict = dict() + for cid in range(self.num_clients): + shards_set = client_shards_dict[cid] + current_indices = [ + sorted_indices[shard_id * size_shard: (shard_id + 1) * size_shard] + for shard_id in shards_set] + client_dict[cid] = np.concatenate(current_indices, axis=0) + + else: # Dirichlet for non-iid + num_samples_per_client = int(self.num_samples / self.num_clients) + client_sample_nums = np.random.lognormal(mean=np.log(num_samples_per_client), + sigma=self.unbalance_sgm, + size=self.num_clients) + client_sample_nums = ( + client_sample_nums / np.sum(client_sample_nums) * self.num_samples).astype(int) + diff = np.sum(client_sample_nums) - self.num_samples # diff <= 0 + + # Add/Subtract the excess number starting from first client + if diff != 0: + for cid in range(self.num_clients): + if client_sample_nums[cid] > diff: + client_sample_nums[cid] -= diff + break + + rest_client_sample_nums = client_sample_nums + + rand_perm = np.random.permutation(self.num_samples) + targets = self.targets[rand_perm] + class_priors = np.random.dirichlet(alpha=[self.dirichlet_alpha] * self.num_classes, + size=self.num_clients) + prior_cumsum = np.cumsum(class_priors, axis=1) + idx_list = [np.where(targets == i)[0] for i in range(self.num_classes)] + class_amount = [len(idx_list[i]) for i in range(self.num_classes)] + + client_indices = [np.zeros(rest_client_sample_nums[cid]).astype(np.int64) for cid in + range(self.num_clients)] + + while np.sum(rest_client_sample_nums) != 0: + curr_cid = np.random.randint(self.num_clients) + # If current node is full resample a client + print('Remaining Data: %d' % np.sum(rest_client_sample_nums)) + if rest_client_sample_nums[curr_cid] <= 0: + continue + rest_client_sample_nums[curr_cid] -= 1 + curr_prior = prior_cumsum[curr_cid] + while True: + curr_class = np.argmax(np.random.uniform() <= curr_prior) + # Redraw class label if no rest in current class samples + if class_amount[curr_class] <= 0: + continue + class_amount[curr_class] -= 1 + client_indices[curr_cid][rest_client_sample_nums[curr_cid]] = \ + idx_list[curr_class][class_amount[curr_class]] + + break + + client_dict = dict([(cid, client_indices[cid]) for cid in range(self.num_clients)]) + + self.client_dict = client_dict def __getitem__(self, index): """ From dd15171d9931217a14564c6db17afc18792c7330 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Wed, 22 Sep 2021 16:37:28 +0800 Subject: [PATCH 07/21] data partition for cifar10 refactor done: put functions in functional --- fedlab/utils/dataset/functional.py | 214 ++++++++++++++++++ fedlab/utils/dataset/partition.py | 352 ++++++++--------------------- 2 files changed, 304 insertions(+), 262 deletions(-) diff --git a/fedlab/utils/dataset/functional.py b/fedlab/utils/dataset/functional.py index 9e3e38f4..8aa2a607 100644 --- a/fedlab/utils/dataset/functional.py +++ b/fedlab/utils/dataset/functional.py @@ -13,6 +13,7 @@ # limitations under the License. import numpy as np +import warnings def split_indices(num_cumsum, rand_perm): @@ -20,3 +21,216 @@ def split_indices(num_cumsum, rand_perm): enumerate(np.split(rand_perm, num_cumsum))] client_dict = dict(client_indices_pairs) return client_dict + + +def balance_partition(num_clients, num_samples): + """Assign same sample sample for each client. + + Args: + num_clients (int): Number of clients for partition. + num_samples (int): Total number of samples. + + Returns: + numpy.ndarray: A numpy array consisting ``num_clients`` integer elements, each represents sample number of corresponding clients. + + """ + num_samples_per_client = int(num_samples / num_clients) + client_sample_nums = (np.ones(num_clients) * num_samples_per_client).astype( + int) + return client_sample_nums + + +def lognormal_unbalance_partition(num_clients, num_samples, unbalance_sgm): + """Assign different sample number for each client. + + Sample numbers for clients are drawn from Log-Normal distribution. + + Args: + num_clients (int): Number of clients for partition. + num_samples (int): Total number of samples. + unbalance_sgm (float): Log-normal variance. When equals to ``0``, the partition is equal to :func:`balance_partition`. + + Returns: + numpy.ndarray: A numpy array consisting ``num_clients`` integer elements, each represents sample number of corresponding clients. + + """ + num_samples_per_client = int(num_samples / num_clients) + client_sample_nums = np.random.lognormal(mean=np.log(num_samples_per_client), + sigma=unbalance_sgm, + size=num_clients) + client_sample_nums = ( + client_sample_nums / np.sum(client_sample_nums) * num_samples).astype( + int) + diff = np.sum(client_sample_nums) - num_samples # diff <= 0 + + # Add/Subtract the excess number starting from first client + if diff != 0: + for cid in range(num_clients): + if client_sample_nums[cid] > diff: + client_sample_nums[cid] -= diff + break + + return client_sample_nums + + +def hetero_dir_partition(targets, num_clients, num_classes, dir_alpha, min_require_size=None): + r""" + + Non-iid partition based on Dirichlet distribution. The method is from "hetero-dir" partition of + `Bayesian Nonparametric Federated Learning of Neural Networks `_ + and `Federated Learning with Matched Averaging `_. + + This method simulates heterogeneous partition for which number of data points and class + proportions are unbalanced. Samples will be partitioned into :math:`J` clients by sampling + :math:`p_k \sim \text{Dir}_{J}(\alpha)` and allocating a :math:`p_{p,j}` proportion of the + samples of class :math:`k` to local client :math:`j`. + + Sample number for each client is decided in this function. + + Args: + targets (list or numpy.ndarray): Sample targets. Unshuffled preferred. + num_clients (int): Number of clients for partition. + num_classes (int): Number of classes in samples. + dir_alpha (float): Parameter alpha for Dirichlet distribution. + min_require_size (int, optional): Minimum required sample number for each client. If set to ``None``, then equals to ``num_classes``. + + Returns: + dict: ``{ client_id: indices}``. + """ + if min_require_size is None: + min_require_size = num_classes + + if not isinstance(targets, np.ndarray): + targets = np.array(targets) + num_samples = targets.shape[0] + + min_size = 0 + while min_size < min_require_size: + idx_batch = [[] for _ in range(num_clients)] + # for each class in the dataset + for k in range(num_classes): + idx_k = np.where(targets == k)[0] + np.random.shuffle(idx_k) + proportions = np.random.dirichlet( + np.repeat(dir_alpha, num_clients)) + # Balance + proportions = np.array( + [p * (len(idx_j) < num_samples / num_clients) for p, idx_j in + zip(proportions, idx_batch)]) + proportions = proportions / proportions.sum() + proportions = (np.cumsum(proportions) * len(idx_k)).astype(int)[:-1] + idx_batch = [idx_j + idx.tolist() for idx_j, idx in + zip(idx_batch, np.split(idx_k, proportions))] + min_size = min([len(idx_j) for idx_j in idx_batch]) + + client_dict = dict() + for cid in range(num_clients): + np.random.shuffle(idx_batch[cid]) + client_dict[cid] = idx_batch[cid] + + return client_dict + + +def shards_partition(targets, num_clients, num_shards): + """Non-iid partition used in FedAvg `paper `_. + + Args: + targets (list or numpy.ndarray): Sample targets. Unshuffled preferred. + num_clients (int): Number of clients for partition. + num_shards (int): Number of shards in partition. + + Returns: + dict: ``{ client_id: indices}``. + + """ + if not isinstance(targets, np.ndarray): + targets = np.array(targets) + num_samples = targets.shape[0] + + size_shard = int(num_samples / num_shards) + if num_samples % num_shards != 0: + warnings.warn("warning: length of dataset isn't divided exactly by num_shards. " + "Some samples will be dropped.") + + shards_per_client = int(num_shards / num_clients) + if num_shards % num_clients != 0: + warnings.warn("warning: num_shards isn't divided exactly by num_clients. " + "Some shards will be dropped.") + + indices = np.arange(num_samples) + # sort sample indices according to labels + indices_targets = np.vstack((indices, targets)) + indices_targets = indices_targets[:, indices_targets[1, :].argsort()] + # corresponding labels after sorting are [0, .., 0, 1, ..., 1, ...] + sorted_indices = indices_targets[0, :] + + # permute shards idx, and slice shards_per_client shards for each client + rand_perm = np.random.permutation(num_shards) + num_client_shards = np.ones(num_clients) * shards_per_client + # sample index must be int + num_cumsum = np.cumsum(num_client_shards).astype(int) + # shard indices for each client + client_shards_dict = split_indices(num_cumsum, rand_perm) + + # map shard idx to sample idx for each client + client_dict = dict() + for cid in range(num_clients): + shards_set = client_shards_dict[cid] + current_indices = [ + sorted_indices[shard_id * size_shard: (shard_id + 1) * size_shard] + for shard_id in shards_set] + client_dict[cid] = np.concatenate(current_indices, axis=0) + + return client_dict + + +def client_inner_dirichlet_partition(targets, num_clients, num_classes, dir_alpha, + client_sample_nums): + """Non-iid Dirichlet partition. + + The method is from The method is from paper `Federated Learning Based on Dynamic Regularization `_. + This function can be used by given specific sample number for all clients ``client_sample_nums``. + It's different from :func:`hetero_dir_partition`. + + Args: + targets (list or numpy.ndarray): Sample targets. Shuffled preferred. + num_clients (int): Number of clients for partition. + num_classes (int): Number of classes in samples. + dir_alpha (float): Parameter alpha for Dirichlet distribution. + client_sample_nums (numpy.ndarray): A numpy array consisting ``num_clients`` integer elements, each represents sample number of corresponding clients. + + Returns: + dict: ``{ client_id: indices}``. + + """ + # perm_targets = self.targets[rand_perm] + class_priors = np.random.dirichlet(alpha=[dir_alpha] * num_classes, + size=num_clients) + prior_cumsum = np.cumsum(class_priors, axis=1) + idx_list = [np.where(targets == i)[0] for i in range(num_classes)] + class_amount = [len(idx_list[i]) for i in range(num_classes)] + + client_indices = [np.zeros(client_sample_nums[cid]).astype(np.int64) for cid in + range(num_clients)] + + while np.sum(client_sample_nums) != 0: + curr_cid = np.random.randint(num_clients) + # If current node is full resample a client + print('Remaining Data: %d' % np.sum(client_sample_nums)) + if client_sample_nums[curr_cid] <= 0: + continue + client_sample_nums[curr_cid] -= 1 + curr_prior = prior_cumsum[curr_cid] + while True: + curr_class = np.argmax(np.random.uniform() <= curr_prior) + # Redraw class label if no rest in current class samples + if class_amount[curr_class] <= 0: + continue + class_amount[curr_class] -= 1 + client_indices[curr_cid][client_sample_nums[curr_cid]] = \ + idx_list[curr_class][class_amount[curr_class]] + + break + + client_dict = dict([(cid, client_indices[cid]) for cid in range(num_clients)]) + return client_dict diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index bff06b29..b11da747 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -19,6 +19,7 @@ import torchvision from . import functional as F +from . import functional class DataPartitioner(object): @@ -35,296 +36,122 @@ def __len__(self): class CIFAR10Partitioner(DataPartitioner): """CIFAR10 data partitioner. - Partition CIFAR10 for specific client number. Current supported partition schemes: balanced iid, - unbalanced iid, balanced non-iid, unbalanced non-iid. + Partition CIFAR10 given specific client number. Currently 6 supported partition schemes can be + achieved by passing different combination of parameters in initialization: - "Balance" refers to FL scenario that sample numbers for different clients are the same. For unbalance - method, sample number for each client is drown from Log-Normal distribution with variance - ``unbalanced_sgm``. When ``unbalanced_sgm=0``, partition is balanced. For more information, - please refer to paper `Federated Learning Based on Dynamic Regularization `_. + - ``balance=None`` - For iid and non-iid, we use random sampling for iid, and use ``"shards"`` method or - ``"dirichlet"`` method for non-iid partition. ``"shards"`` is non-iid method used in FedAvg - `paper `_. ``"dirichlet"`` is non-iid method used in - `Federated Learning with Matched Averaging `_ and - `Bayesian nonparametric federated learning of neural networks `_. + - ``partition="dirichlet"``: non-iid partition used in + `Bayesian Nonparametric Federated Learning of Neural Networks `_ + and `Federated Learning with Matched Averaging `_. Refer + to :func:`fedlab.utils.dataset.functional.hetero_dir_partition` for more information. + + - ``partition="shards"``: non-iid method used in FedAvg `paper `_. + Refer to :func:`fedlab.utils.dataset.functional.shards_partition` for more information. + + + - ``balance=True``: "Balance" refers to FL scenario that sample numbers for different clients + are the same. Refer to :func:`fedlab.utils.dataset.functional.balance_partition` for more + information. + + - ``partition="iid"``: Random select samples from complete dataset given sample number for + each client. + + - ``partition="dirichlet"``: Refer to :func:`fedlab.utils.dataset.functional.client_inner_dirichlet_partition` + for more information. + + - ``balance=False``: "Unbalance" refers to FL scenario that sample numbers for different clients + are different. For unbalance method, sample number for each client is drown from Log-Normal + distribution with variance ``unbalanced_sgm``. When ``unbalanced_sgm=0``, partition is + balanced. Refer to :func:`fedlab.utils.dataset.functional.lognormal_unbalance_partition` + for more information. The method is from paper `Federated Learning Based on Dynamic Regularization `_. + + - ``partition="iid"``: Random select samples from complete dataset given sample number for + each client. + + - ``partition="dirichlet"``: Refer to :func:`fedlab.utils.dataset.functional.client_inner_dirichlet_partition` + for more information. Args: targets (list or numpy.ndarray): Targets of dataset for partition. Each element is in range of [0, 1, ..., 9]. num_clients (int): Number of clients for data partition. - partition (str, optional): Partition type, only ``"iid"`` or ``niid`` supported. Default as ``"iid"``. - num_shards (int optional): Number of shards in non-iid partition. Only works if ``partition="niid"`` and ``dirichlet=None``. Default as ``None``. - dirichlet (float, optional): Dirichlet distribution parameter for non-iid partition. Only works if ``partition="niid"`` and ``num_shards=None``. Default as ``None``. balance (bool, optional): Balanced partition over all clients or not. Default as ``True``. + partition (str, optional): Partition type, only ``"iid"``, ``shards``, ``"dirichlet"`` are supported. Default as ``"iid"``. unbalance_sgm (float, optional): Log-normal distribution variance for unbalanced data partition over clients. Default as ``0`` for balanced partition. + num_shards (int, optional): Number of shards in non-iid ``"shards"`` partition. Only works if ``partition="shards"``. Default as ``None``. + dir_alpha (float, optional): Dirichlet distribution parameter for non-iid partition. Only works if ``partition="dirichlet"``. Default as ``None``. + seed (int, optional): Random seed. Default as ``None``. """ def __init__(self, targets, num_clients, - partition="iid", - niid_method=None, - num_shards=None, - dirichlet_alpha=None, - balance=True, + balance=True, partition="iid", unbalance_sgm=0, + num_shards=None, + dir_alpha=None, seed=None): + self.targets = np.array(targets) # with shape (num_samples,) self.num_samples = self.targets.shape[0] self.num_classes = 10 self.num_clients = num_clients self.client_dict = dict() self.partition = partition - self.client_sample_nums = None # number of samples for each client, a list or numpy vector + self.balance = balance + self.dir_alpha = dir_alpha + self.num_shards = num_shards + self.unbalance_sgm = unbalance_sgm # self.rng = np.random.default_rng(seed) # rng currently not supports randint np.random.seed(seed) - # set balance/unbalance variables - self.balance = balance - if balance is True: - self.unbalance_sgm = 0 - elif balance is False: - assert isinstance(unbalance_sgm, float), \ - f"'unbalance_sgm' for Log-Normal distribution should be float, " \ - f"not {type(unbalance_sgm)}" - self.unbalance_sgm = unbalance_sgm + # partition scheme check + if balance is None: + assert partition in ["dirichlet", "shards"], f"When balance=None, 'partition' only " \ + f"accepts 'dirichlet' and 'shards'." + elif isinstance(balance, bool): + assert partition in ["iid", "dirichlet"], f"When balance is bool, 'partition' only " \ + f"accepts 'dirichlet' and 'iid'." else: - raise ValueError(f"'balance' should only be bool, not {type(balance)}.") - - # set iid/non-iid variables - if self.partition == "iid": - self.niid_method = None - self.dirichlet = None - self.num_shards = None - - elif self.partition == "niid": - self.niid_method = niid_method - if self.niid_method == "shards": - self.dirichlet_alpha = None - assert isinstance(num_shards, int), \ - f"num_shards should be int for non-iid partition, not {type(num_shards)}." - self.num_shards = num_shards - elif self.niid_method == "dirichlet": - assert isinstance(dirichlet_alpha, float), \ - f"'dirichlet_alpha' for non-iid partition using Dirichlet distribution should " \ - f"be float, not {type(dirichlet_alpha)}" - self.num_shards = None + raise ValueError(f"'balance' can only be NoneType or bool, not {type(balance)}.") + + # perform partition according to setting + self.client_dict = self._perform_partition() + + def _perform_partition(self): + if self.balance is None: + if self.partition is "dirichlet": + client_dict = F.hetero_dir_partition(self.targets, + self.num_clients, + self.num_classes, + self.dir_alpha, + min_require_size=self.num_classes) + + else: # partition is 'shards' + client_dict = F.shards_partition(self.targets, self.num_clients, self.num_shards) + + else: # if balance is True or False + # perform sample number balance/unbalance partition over all clients + if self.balance is True: + client_sample_nums = F.balance_partition(self.num_clients, self.num_samples) else: - raise ValueError( - f"'niid_method' can only be 'shards' or 'dirichlet', {niid_method} is not " - f"valid.") - - self._partition() # perform data partition according to setting - - def _partition(self): - if self.balance is True and self.partition == "iid": - self._iid_balance() - elif self.balance is False and self.partition == "iid": - self._iid_unbalance() - elif self.balance is True and self.partition == "niid": - self._niid_balance() - else: # for balance and niid partition - self._niid_unbalance() - - def _iid_balance(self): - rand_perm = np.random.permutation(self.num_samples) - num_samples_per_client = int(self.num_samples / self.num_clients) - self.client_sample_nums = np.ones(self.num_clients) * num_samples_per_client - num_cumsum = np.cumsum(self.client_sample_nums).astype(int) - self.client_dict = F.split_indices(num_cumsum, rand_perm) - - def _iid_unbalance(self): - rand_perm = np.random.permutation(self.num_samples) - num_samples_per_client = int(self.num_samples / self.num_clients) - client_sample_nums = np.random.lognormal(mean=np.log(num_samples_per_client), - sigma=self.unbalance_sgm, - size=self.num_clients) - client_sample_nums = ( - client_sample_nums / np.sum(client_sample_nums) * self.num_samples).astype(int) - diff = np.sum(client_sample_nums) - self.num_samples # diff <= 0 - - # Add/Subtract the excess number starting from first client - if diff != 0: - for cid in range(self.num_clients): - if client_sample_nums[cid] > diff: - client_sample_nums[cid] -= diff - break - - self.client_sample_nums = client_sample_nums - num_cumsum = np.cumsum(self.client_sample_nums).astype(int) - self.client_dict = F.split_indices(num_cumsum, rand_perm) - - def _niid_balance(self): - if self.niid_method == "shards": - size_shard = int(self.num_samples / self.num_shards) - if self.num_samples % self.num_shards != 0: - warnings.warn("warning: length of dataset isn't divided exactly by num_shards. " - "Some samples will be dropped.") - - shards_per_client = int(self.num_shards / self.num_clients) - if self.num_shards % self.num_clients != 0: - warnings.warn("warning: num_shards isn't divided exactly by num_clients. " - "Some shards will be dropped.") - - indices = np.arange(self.num_samples) - # sort sample indices according to labels - indices_targets = np.vstack((indices, self.targets)) - indices_targets = indices_targets[:, indices_targets[1, :].argsort()] - # corresponding labels after sorting are [0, .., 0, 1, ..., 1, ...] - sorted_indices = indices_targets[0, :] - - # permute shards idx, and slice shards_per_client shards for each client - rand_perm = np.random.permutation(self.num_shards) - num_client_shards = np.ones(self.num_clients) * shards_per_client - # sample index must be int - num_cumsum = np.cumsum(num_client_shards).astype(int) - # shard indices for each client - client_shards_dict = F.split_indices(num_cumsum, rand_perm) - - # map shard idx to sample idx for each client - client_dict = dict() - for cid in range(self.num_clients): - shards_set = client_shards_dict[cid] - current_indices = [ - sorted_indices[shard_id * size_shard: (shard_id + 1) * size_shard] - for shard_id in shards_set] - client_dict[cid] = np.concatenate(current_indices, axis=0) - - else: # Dirichlet for non-iid - # code below is modified from FedDyn Dirichlet partition - rand_perm = np.random.permutation(self.num_samples) - targets = self.targets[rand_perm] - num_samples_per_client = int(self.num_samples / self.num_clients) - self.client_sample_nums = (np.ones(self.num_clients) * num_samples_per_client).astype( - int) - rest_client_sample_nums = (np.ones(self.num_clients) * num_samples_per_client).astype( - int) - - class_priors = np.random.dirichlet(alpha=[self.dirichlet_alpha] * self.num_classes, - size=self.num_clients) - prior_cumsum = np.cumsum(class_priors, axis=1) - idx_list = [np.where(targets == i)[0] for i in range(self.num_classes)] - class_amount = [len(idx_list[i]) for i in range(self.num_classes)] - - client_indices = [np.zeros(rest_client_sample_nums[cid]).astype(np.int64) for cid in - range(self.num_clients)] - - while np.sum(rest_client_sample_nums) != 0: - curr_cid = np.random.randint(self.num_clients) - # If current node is full resample a client - print('Remaining Data: %d' % np.sum(rest_client_sample_nums)) - if rest_client_sample_nums[curr_cid] <= 0: - continue - rest_client_sample_nums[curr_cid] -= 1 - curr_prior = prior_cumsum[curr_cid] - while True: - curr_class = np.argmax(np.random.uniform() <= curr_prior) - # Redraw class label if no rest in current class samples - if class_amount[curr_class] <= 0: - continue - class_amount[curr_class] -= 1 - client_indices[curr_cid][rest_client_sample_nums[curr_cid]] = \ - idx_list[curr_class][class_amount[curr_class]] - - break - - client_dict = dict([(cid, client_indices[cid]) for cid in range(self.num_clients)]) - - self.client_dict = client_dict - - def _niid_unbalance(self): - if self.niid_method == "shards": - size_shard = int(self.num_samples / self.num_shards) - num_shards_per_client = int(self.num_shards / self.num_clients) - client_shards_nums = np.random.lognormal(mean=np.log(num_shards_per_client), - sigma=self.unbalance_sgm, - size=self.num_clients) - client_shards_nums = ( - client_shards_nums / np.sum(client_shards_nums) * self.num_shards).astype(int) - diff = np.sum(client_shards_nums) - self.num_shards # diff <= 0 - - # Add/Subtract the excess number starting from first client - if diff != 0: - for cid in range(self.num_clients): - if client_shards_nums[cid] > diff: - client_shards_nums[cid] -= diff - break - - self.client_shards_nums = client_shards_nums - # permute shards idx, and slice shards_per_client shards for each client - rand_perm = np.random.permutation(self.num_shards) - num_cumsum = np.cumsum(self.client_shards_nums).astype(int) - # shard indices for each client - client_shards_dict = F.split_indices(num_cumsum, rand_perm) - - # sort sample indices according to labels - indices = np.arange(self.num_samples) - indices_targets = np.vstack((indices, self.targets)) - indices_targets = indices_targets[:, indices_targets[1, :].argsort()] - # corresponding labels after sorting are [0, .., 0, 1, ..., 1, ...] - sorted_indices = indices_targets[0, :] - - # map shard idx to sample idx for each client - client_dict = dict() - for cid in range(self.num_clients): - shards_set = client_shards_dict[cid] - current_indices = [ - sorted_indices[shard_id * size_shard: (shard_id + 1) * size_shard] - for shard_id in shards_set] - client_dict[cid] = np.concatenate(current_indices, axis=0) - - else: # Dirichlet for non-iid - num_samples_per_client = int(self.num_samples / self.num_clients) - client_sample_nums = np.random.lognormal(mean=np.log(num_samples_per_client), - sigma=self.unbalance_sgm, - size=self.num_clients) - client_sample_nums = ( - client_sample_nums / np.sum(client_sample_nums) * self.num_samples).astype(int) - diff = np.sum(client_sample_nums) - self.num_samples # diff <= 0 - - # Add/Subtract the excess number starting from first client - if diff != 0: - for cid in range(self.num_clients): - if client_sample_nums[cid] > diff: - client_sample_nums[cid] -= diff - break - - rest_client_sample_nums = client_sample_nums + client_sample_nums = F.lognormal_unbalance_partition(self.num_clients, + self.num_samples, + self.unbalance_sgm) + # perform iid/dirichlet partition for each client rand_perm = np.random.permutation(self.num_samples) - targets = self.targets[rand_perm] - class_priors = np.random.dirichlet(alpha=[self.dirichlet_alpha] * self.num_classes, - size=self.num_clients) - prior_cumsum = np.cumsum(class_priors, axis=1) - idx_list = [np.where(targets == i)[0] for i in range(self.num_classes)] - class_amount = [len(idx_list[i]) for i in range(self.num_classes)] - - client_indices = [np.zeros(rest_client_sample_nums[cid]).astype(np.int64) for cid in - range(self.num_clients)] - - while np.sum(rest_client_sample_nums) != 0: - curr_cid = np.random.randint(self.num_clients) - # If current node is full resample a client - print('Remaining Data: %d' % np.sum(rest_client_sample_nums)) - if rest_client_sample_nums[curr_cid] <= 0: - continue - rest_client_sample_nums[curr_cid] -= 1 - curr_prior = prior_cumsum[curr_cid] - while True: - curr_class = np.argmax(np.random.uniform() <= curr_prior) - # Redraw class label if no rest in current class samples - if class_amount[curr_class] <= 0: - continue - class_amount[curr_class] -= 1 - client_indices[curr_cid][rest_client_sample_nums[curr_cid]] = \ - idx_list[curr_class][class_amount[curr_class]] - - break - - client_dict = dict([(cid, client_indices[cid]) for cid in range(self.num_clients)]) - - self.client_dict = client_dict + if self.partition == "iid": + num_cumsum = np.cumsum(client_sample_nums).astype(int) + client_dict = F.split_indices(num_cumsum, rand_perm) + else: # for dirichlet + targets = self.targets[rand_perm] + client_dict = F.client_inner_dirichlet_partition(targets, self.num_clients, + self.num_classes, self.dir_alpha, + client_sample_nums) + + return client_dict def __getitem__(self, index): - """ + """Obtain sample indices for client ``index``. Args: index (int): Client ID. @@ -336,4 +163,5 @@ def __getitem__(self, index): return self.client_dict[index] def __len__(self): + """Usually equals to number of clients.""" return len(self.client_dict) From 6ee57d53444f10f611a63e0350734d47087c7204 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Wed, 22 Sep 2021 16:38:44 +0800 Subject: [PATCH 08/21] fix func name in DataPartitioner --- fedlab/utils/dataset/partition.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index b11da747..a797b29e 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -23,7 +23,7 @@ class DataPartitioner(object): - def partition(self): + def _perform_partition(self): raise NotImplementedError def __getitem__(self, index): From 08aada5595f93e6d4563a3b710c11e7986f3b920 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Wed, 22 Sep 2021 19:49:37 +0800 Subject: [PATCH 09/21] fix balance iid data partition --- fedlab/utils/dataset/functional.py | 8 +++++--- fedlab/utils/dataset/partition.py | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/fedlab/utils/dataset/functional.py b/fedlab/utils/dataset/functional.py index 8aa2a607..06544608 100644 --- a/fedlab/utils/dataset/functional.py +++ b/fedlab/utils/dataset/functional.py @@ -18,7 +18,7 @@ def split_indices(num_cumsum, rand_perm): client_indices_pairs = [(cid, idxs) for cid, idxs in - enumerate(np.split(rand_perm, num_cumsum))] + enumerate(np.split(rand_perm, num_cumsum)[:-1])] client_dict = dict(client_indices_pairs) return client_dict @@ -185,7 +185,7 @@ def shards_partition(targets, num_clients, num_shards): def client_inner_dirichlet_partition(targets, num_clients, num_classes, dir_alpha, - client_sample_nums): + client_sample_nums, verbose=True): """Non-iid Dirichlet partition. The method is from The method is from paper `Federated Learning Based on Dynamic Regularization `_. @@ -198,6 +198,7 @@ def client_inner_dirichlet_partition(targets, num_clients, num_classes, dir_alph num_classes (int): Number of classes in samples. dir_alpha (float): Parameter alpha for Dirichlet distribution. client_sample_nums (numpy.ndarray): A numpy array consisting ``num_clients`` integer elements, each represents sample number of corresponding clients. + verbose (bool, optional): Whether to print partition process. Default as ``True``. Returns: dict: ``{ client_id: indices}``. @@ -216,7 +217,8 @@ def client_inner_dirichlet_partition(targets, num_clients, num_classes, dir_alph while np.sum(client_sample_nums) != 0: curr_cid = np.random.randint(num_clients) # If current node is full resample a client - print('Remaining Data: %d' % np.sum(client_sample_nums)) + if verbose: + print('Remaining Data: %d' % np.sum(client_sample_nums)) if client_sample_nums[curr_cid] <= 0: continue client_sample_nums[curr_cid] -= 1 diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index a797b29e..20876e08 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -80,6 +80,7 @@ class CIFAR10Partitioner(DataPartitioner): unbalance_sgm (float, optional): Log-normal distribution variance for unbalanced data partition over clients. Default as ``0`` for balanced partition. num_shards (int, optional): Number of shards in non-iid ``"shards"`` partition. Only works if ``partition="shards"``. Default as ``None``. dir_alpha (float, optional): Dirichlet distribution parameter for non-iid partition. Only works if ``partition="dirichlet"``. Default as ``None``. + verbose (bool, optional): Whether to print partition process. Default as ``True``. seed (int, optional): Random seed. Default as ``None``. """ @@ -88,6 +89,7 @@ def __init__(self, targets, num_clients, unbalance_sgm=0, num_shards=None, dir_alpha=None, + verbose=True, seed=None): self.targets = np.array(targets) # with shape (num_samples,) @@ -100,6 +102,7 @@ def __init__(self, targets, num_clients, self.dir_alpha = dir_alpha self.num_shards = num_shards self.unbalance_sgm = unbalance_sgm + self.verbose = verbose # self.rng = np.random.default_rng(seed) # rng currently not supports randint np.random.seed(seed) From 41e0bb4da9933ff9dd6a22f0de44d8695df827df Mon Sep 17 00:00:00 2001 From: AgentDS Date: Wed, 22 Sep 2021 19:52:40 +0800 Subject: [PATCH 10/21] add verbose for dirichlet data partition --- fedlab/utils/dataset/partition.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index 20876e08..e2a3ff61 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -149,7 +149,7 @@ def _perform_partition(self): targets = self.targets[rand_perm] client_dict = F.client_inner_dirichlet_partition(targets, self.num_clients, self.num_classes, self.dir_alpha, - client_sample_nums) + client_sample_nums, self.verbose) return client_dict From 8e5dc88437a83c19f6fadc04db292cdab3f82c17 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Wed, 22 Sep 2021 19:54:22 +0800 Subject: [PATCH 11/21] fix typo --- fedlab/utils/dataset/partition.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index e2a3ff61..2c80922e 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -121,7 +121,7 @@ def __init__(self, targets, num_clients, def _perform_partition(self): if self.balance is None: - if self.partition is "dirichlet": + if self.partition == "dirichlet": client_dict = F.hetero_dir_partition(self.targets, self.num_clients, self.num_classes, From a7d2768adf4914a6afeb53dd385c51eebbbf2772 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Wed, 22 Sep 2021 20:14:00 +0800 Subject: [PATCH 12/21] add img for data partition --- ...ifar10_balance_dir_alpha_0.3_100clients.png | Bin 0 -> 114390 bytes .../cifar10_balance_iid_100clients.png | Bin 0 -> 114379 bytes .../cifar10_hetero_dir_0.3_100clients.png | Bin 0 -> 115006 bytes .../cifar10_shards_200_100clients.png | Bin 0 -> 113541 bytes ..._alpha_0.3_unbalance_sgm_0.3_100clients.png | Bin 0 -> 114493 bytes ...alance_iid_unbalance_sgm_0.3_100clients.png | Bin 0 -> 114493 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/imgs/data-partition/cifar10_balance_dir_alpha_0.3_100clients.png create mode 100644 docs/imgs/data-partition/cifar10_balance_iid_100clients.png create mode 100644 docs/imgs/data-partition/cifar10_hetero_dir_0.3_100clients.png create mode 100644 docs/imgs/data-partition/cifar10_shards_200_100clients.png create mode 100644 docs/imgs/data-partition/cifar10_unbalance_dir_alpha_0.3_unbalance_sgm_0.3_100clients.png create mode 100644 docs/imgs/data-partition/cifar10_unbalance_iid_unbalance_sgm_0.3_100clients.png diff --git a/docs/imgs/data-partition/cifar10_balance_dir_alpha_0.3_100clients.png b/docs/imgs/data-partition/cifar10_balance_dir_alpha_0.3_100clients.png new file mode 100644 index 0000000000000000000000000000000000000000..64e89ca3c3c0d30a6e428c64d0199ed3313bb4ea GIT binary patch literal 114390 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 literal 0 HcmV?d00001 diff --git a/docs/imgs/data-partition/cifar10_balance_iid_100clients.png b/docs/imgs/data-partition/cifar10_balance_iid_100clients.png new file mode 100644 index 0000000000000000000000000000000000000000..c75f1dd110f11b10c1e276e9ea4ad1c2221fc554 GIT binary patch literal 114379 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%0D*k1 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%0DDh0m#xS}Tt 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 F{{Xl9K%@Ww literal 0 HcmV?d00001 diff --git a/docs/imgs/data-partition/cifar10_hetero_dir_0.3_100clients.png b/docs/imgs/data-partition/cifar10_hetero_dir_0.3_100clients.png new file mode 100644 index 0000000000000000000000000000000000000000..6c83e38b332271f0f3cd15b2469adf6f6a8a01be GIT binary patch literal 115006 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 U1sD7F4~ywtHb$0Qa=i1u0Jl}uIRF3v literal 0 HcmV?d00001 diff --git a/docs/imgs/data-partition/cifar10_shards_200_100clients.png b/docs/imgs/data-partition/cifar10_shards_200_100clients.png new file mode 100644 index 0000000000000000000000000000000000000000..7f1d709025cb547a9a7668c506d96e8ebf688e37 GIT binary patch literal 113541 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 #1SpHlt-Vui`Jo{vKyR#4i|l(hl>eoMQ+{f%Y6 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 literal 0 HcmV?d00001 diff --git a/docs/imgs/data-partition/cifar10_unbalance_iid_unbalance_sgm_0.3_100clients.png b/docs/imgs/data-partition/cifar10_unbalance_iid_unbalance_sgm_0.3_100clients.png new file mode 100644 index 0000000000000000000000000000000000000000..ff813e0176b60ddef6ade43a629d9b39f6b94714 GIT binary patch literal 114493 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 UM=%7m@pudco{qxQx~?^=|14N>>PUgPM>*u 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%0Dq!pk8ahh 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 literal 0 HcmV?d00001 From fb9277d86f36fa49a90b33d0157fdd8d34626eb1 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Thu, 23 Sep 2021 15:31:53 +0800 Subject: [PATCH 13/21] unittest for datapartition functional done: 100% coverage --- tests/__init__.py | 84 +--------- tests/test_core/__init__.py | 6 + tests/test_core/test_client/__init__.py | 6 + tests/test_core/test_communicator/__init__.py | 6 + tests/test_core/test_hierarchical/__init__.py | 6 + tests/test_core/test_server/__init__.py | 6 + .../test_dataset/test_functional.py | 149 ++++++++++++++++++ tests/test_utils/test_dataset/test_slicing.py | 7 +- 8 files changed, 184 insertions(+), 86 deletions(-) create mode 100644 tests/test_core/__init__.py create mode 100644 tests/test_core/test_client/__init__.py create mode 100644 tests/test_core/test_communicator/__init__.py create mode 100644 tests/test_core/test_hierarchical/__init__.py create mode 100644 tests/test_core/test_server/__init__.py create mode 100644 tests/test_utils/test_dataset/test_functional.py diff --git a/tests/__init__.py b/tests/__init__.py index f4e2c57c..038d4a40 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -18,83 +18,7 @@ def get_tests(): - - from .test_utils.test_serialization import SerializationTestCase - from .test_utils.test_message_code import MessageCodeTestCase - from .test_utils.test_aggregator import AggregatorTestCase - from .test_utils.test_functional import FunctionalTestCase - from .test_utils.test_logger import LoggerTestCase - from .test_utils.test_compressor import CompressorTestCase - from .test_utils.test_dataset.test_sampler import SamplerTestCase - from .test_utils.test_dataset.test_slicing import SliceTestCase - - from .test_core.test_communicator.test_processor import ProcessorTestCase - from .test_core.test_server.test_handler import HandlerTestCase - from .test_core.test_network import NetworkTestCase - from .test_core.test_network_manager import ManagerTestCase - from .test_core.test_communicator.test_package import PackageTestCase - from .test_core.test_client.test_trainer import TrainerTestCase - - from .test_fedavg_client import FedAvgClientTestCase - from .test_fedavg_server import FedAvgServerTestCase - - from .test_fedasgd_client import FedAsgdClientTestCase - from .test_fedasgd_server import FedAsgdServerTestCase - - serialization_suite = unittest.TestLoader().loadTestsFromTestCase( - SerializationTestCase) - message_code_suite = unittest.TestLoader().loadTestsFromTestCase( - MessageCodeTestCase) - processor_suite = unittest.TestLoader().loadTestsFromTestCase( - ProcessorTestCase) - functional_suite = unittest.TestLoader().loadTestsFromTestCase( - FunctionalTestCase) - logger_suite = unittest.TestLoader().loadTestsFromTestCase(LoggerTestCase) - aggregator_suite = unittest.TestLoader().loadTestsFromTestCase( - AggregatorTestCase) - compressor_suite = unittest.TestLoader().loadTestsFromTestCase( - CompressorTestCase) - handler_suite = unittest.TestLoader().loadTestsFromTestCase( - HandlerTestCase) - network_suite = unittest.TestLoader().loadTestsFromTestCase( - NetworkTestCase) - manager_suite = unittest.TestLoader().loadTestsFromTestCase( - ManagerTestCase) - package_suite = unittest.TestLoader().loadTestsFromTestCase( - PackageTestCase) - sampler_suite = unittest.TestLoader().loadTestsFromTestCase( - SamplerTestCase) - trainer_suite = unittest.TestLoader().loadTestsFromTestCase( - TrainerTestCase) - slice_suite = unittest.TestLoader().loadTestsFromTestCase(SliceTestCase) - - fedavg_client_suite = unittest.TestLoader().loadTestsFromTestCase( - FedAvgClientTestCase) - fedavg_server_suite = unittest.TestLoader().loadTestsFromTestCase( - FedAvgServerTestCase) - - fedasgd_client_suite = unittest.TestLoader().loadTestsFromTestCase( - FedAsgdClientTestCase) - fedasgd_server_suite = unittest.TestLoader().loadTestsFromTestCase( - FedAsgdServerTestCase) - - return unittest.TestSuite([ - serialization_suite, - message_code_suite, - processor_suite, - aggregator_suite, - compressor_suite, - handler_suite, - functional_suite, - logger_suite, - network_suite, - manager_suite, - package_suite, - sampler_suite, - fedavg_client_suite, - fedavg_server_suite, - fedasgd_server_suite, - fedasgd_client_suite, - trainer_suite, - slice_suite, - ]) + loader = unittest.TestLoader() + start_dir = './' + suite = loader.discover(start_dir, pattern='test_*.py') + return suite diff --git a/tests/test_core/__init__.py b/tests/test_core/__init__.py new file mode 100644 index 00000000..bb2e0f9e --- /dev/null +++ b/tests/test_core/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# @Time : 9/23/21 12:20 PM +# @Author : Siqi Liang +# @Contact : zszxlsq@gmail.com +# @File : __init__.py +# @Software: PyCharm diff --git a/tests/test_core/test_client/__init__.py b/tests/test_core/test_client/__init__.py new file mode 100644 index 00000000..0af08840 --- /dev/null +++ b/tests/test_core/test_client/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# @Time : 9/23/21 12:18 PM +# @Author : Siqi Liang +# @Contact : zszxlsq@gmail.com +# @File : __init__.py +# @Software: PyCharm diff --git a/tests/test_core/test_communicator/__init__.py b/tests/test_core/test_communicator/__init__.py new file mode 100644 index 00000000..71464de7 --- /dev/null +++ b/tests/test_core/test_communicator/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# @Time : 9/23/21 12:17 PM +# @Author : Siqi Liang +# @Contact : zszxlsq@gmail.com +# @File : __init__.py +# @Software: PyCharm diff --git a/tests/test_core/test_hierarchical/__init__.py b/tests/test_core/test_hierarchical/__init__.py new file mode 100644 index 00000000..71464de7 --- /dev/null +++ b/tests/test_core/test_hierarchical/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# @Time : 9/23/21 12:17 PM +# @Author : Siqi Liang +# @Contact : zszxlsq@gmail.com +# @File : __init__.py +# @Software: PyCharm diff --git a/tests/test_core/test_server/__init__.py b/tests/test_core/test_server/__init__.py new file mode 100644 index 00000000..0af08840 --- /dev/null +++ b/tests/test_core/test_server/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# @Time : 9/23/21 12:18 PM +# @Author : Siqi Liang +# @Contact : zszxlsq@gmail.com +# @File : __init__.py +# @Software: PyCharm diff --git a/tests/test_utils/test_dataset/test_functional.py b/tests/test_utils/test_dataset/test_functional.py new file mode 100644 index 00000000..27833211 --- /dev/null +++ b/tests/test_utils/test_dataset/test_functional.py @@ -0,0 +1,149 @@ +# Copyright 2021 Peng Cheng Laboratory (http://www.szpclab.com/) and FedLab Authors (smilelab.group) + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import unittest +import os +import numpy as np +from fedlab.utils.dataset import functional as F + + +class DatasetFunctionalTestCase(unittest.TestCase): + @classmethod + def setUpClass(cls) -> None: + cls.num_samples = 10000 + cls.num_classes = 10 + cls.num_clients = 100 + + def setUp(self) -> None: + np.random.seed(2021) + + def test_split_indices(self): + client_sample_nums = np.ones(self.num_clients) * int(self.num_samples / self.num_clients) + num_cumsum = np.cumsum(client_sample_nums).astype(int) + client_dict = F.split_indices(num_cumsum, np.arange(self.num_samples)) + self.assertEqual(len(client_dict), self.num_clients) + self.assertTrue(self._dict_item_len_check(client_dict, client_sample_nums)) + self.assertTrue(self._dict_element_check(client_dict, np.arange(self.num_samples))) + + def _dict_item_len_check(self, client_dict, client_sample_nums): + for cid in range(self.num_clients): + if len(client_dict[cid]) != client_sample_nums[cid]: + return False + return True + + def _dict_element_check(self, client_dict, indices): + concat_dict = np.concatenate([client_dict[cid] for cid in range(self.num_clients)]) + all_equal = all(np.array(indices) == concat_dict) + return all_equal + + def test_balance_partition(self): + client_sample_nums = F.balance_partition(self.num_clients, self.num_samples) + self.assertTrue(client_sample_nums.shape[0] == self.num_clients) + self.assertTrue(all(client_sample_nums == int(self.num_samples / self.num_clients))) + + def test_lognormal_unbalance_partition(self): + # check length + clt_sample_nums = F.lognormal_unbalance_partition(self.num_clients, + self.num_samples, 0.6) + self.assertTrue(clt_sample_nums.shape[0] == self.num_clients) + # sample number for each client should not be equal + self.assertFalse(all(clt_sample_nums == int(self.num_samples / self.num_clients))) + + # when unbalanced_sgm=0, should have same result as balanced + lognormal_clt_sample_nums = F.lognormal_unbalance_partition(self.num_clients, + self.num_samples, 0) + balance_clt_sample_nums = F.balance_partition(self.num_clients, self.num_samples) + self.assertTrue(all(lognormal_clt_sample_nums == balance_clt_sample_nums)) + + def test_hetero_dir_partition(self): + # use np.ndarray targets + targets = np.random.randint(10, size=self.num_samples) + client_dict = F.hetero_dir_partition(targets, + self.num_clients, + self.num_classes, 0.3) + self._hetero_content_check(client_dict) + + # use list targets + client_dict = F.hetero_dir_partition(targets.tolist(), + self.num_clients, + self.num_classes, 0.3) + self._hetero_content_check(client_dict) + + def _hetero_content_check(self, client_dict): + # check client number + self.assertTrue(len(client_dict) == self.num_clients) + # sample number for each clients should not be same for all clients + self.assertFalse( + all([len(client_dict[cid]) == int(self.num_samples / self.num_clients) for cid in + range(self.num_clients)])) + # total number should equal to num_samples + all_samples = np.concatenate([client_dict[cid] for cid in range(self.num_clients)]).tolist() + unique_samples = set(all_samples) + self.assertTrue(unique_samples == set(list(range(self.num_samples)))) + + def test_shards_partition(self): + num_shards = 200 + targets = np.random.randint(10, size=self.num_samples) + + # use np.ndarray targets + client_dict = F.shards_partition(targets, self.num_clients, num_shards) + self._shards_content_check(client_dict, num_shards) + + # use list targets + client_dict = F.shards_partition(targets.tolist(), self.num_clients, num_shards) + self._shards_content_check(client_dict, num_shards) + + # check warnings when num_shards is not dividable for num_clients and num_samples + with self.assertWarns(Warning, + msg="warning: length of dataset isn't divided exactly by num_shards. ") as cm: + F.shards_partition(targets, self.num_clients, 299) + + def _shards_content_check(self, client_dict, num_shards): + # check number of partition parts + self.assertTrue(len(client_dict) == self.num_clients) + # number of samples should be equal for all clients + num_samples_per_clients = int(self.num_samples / num_shards) * int( + num_shards / self.num_clients) + self.assertTrue(all([len(client_dict[cid]) == num_samples_per_clients for cid in + range(self.num_clients)])) + + def test_client_inner_dirichlet_partition(self): + targets = np.random.randint(10, size=self.num_samples) + client_sample_nums = F.balance_partition(self.num_clients, self.num_samples) + + # use np.ndarray targets + client_dict = F.client_inner_dirichlet_partition(targets, + self.num_clients, + self.num_classes, + dir_alpha=0.3, + client_sample_nums=client_sample_nums, + verbose=True) + self._client_inner_dirichlet_content_check(client_dict, client_sample_nums) + + # use list targets + client_dict = F.client_inner_dirichlet_partition(targets.tolist(), + self.num_clients, + self.num_classes, + dir_alpha=0.3, + client_sample_nums=client_sample_nums, + verbose=True) + self._client_inner_dirichlet_content_check(client_dict, client_sample_nums) + + def _client_inner_dirichlet_content_check(self, client_dict, client_sample_nums): + # check number of partition parts + self.assertTrue(len(client_dict) == self.num_clients) + # check sample number for each client + self.assertTrue(all([len(client_dict[cid]) == client_sample_nums[cid] for cid in + range(self.num_clients)])) diff --git a/tests/test_utils/test_dataset/test_slicing.py b/tests/test_utils/test_dataset/test_slicing.py index 0b36e769..5c29394b 100644 --- a/tests/test_utils/test_dataset/test_slicing.py +++ b/tests/test_utils/test_dataset/test_slicing.py @@ -17,7 +17,7 @@ from torch import nn import torchvision import torchvision.transforms as transforms -from fedlab.utils.dataset.slicing import noniid_slicing, random_slicing, divide_dataset +from fedlab.utils.dataset.slicing import noniid_slicing, random_slicing class SliceTestCase(unittest.TestCase): @@ -40,8 +40,3 @@ def test_random_slicing(self): noniid_slicing(self.trainset, num_clients=self.total_client, num_shards=200) - - @unittest.skipUnless(torch.cuda.is_available(), "CUDA is required") - def test_divide_dataset(self): - slice = random_slicing(self.trainset, num_clients=self.total_client) - divide_dataset(self.trainset, slice) \ No newline at end of file From 31d05eb2390eacf10d8ee6d42dfd67c6ee47ab38 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Thu, 23 Sep 2021 15:32:56 +0800 Subject: [PATCH 14/21] refactor unittest test suit load in method, auto load all test case now --- tests/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/__init__.py b/tests/__init__.py index 038d4a40..7c19cf5f 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from random import sample + from tests.test_core.task_setting_for_test import unittest_dataloader import unittest From 1c73fcd496a294bf0bc7082b931e444008154dd5 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Thu, 23 Sep 2021 16:05:17 +0800 Subject: [PATCH 15/21] use ABC,abstractmethd for partition base class --- fedlab/utils/dataset/partition.py | 8 ++- .../test_utils/test_dataset/test_partition.py | 70 +++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 tests/test_utils/test_dataset/test_partition.py diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index 2c80922e..7d93c735 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -13,6 +13,8 @@ # limitations under the License. import warnings +from abc import ABC, abstractmethod + import numpy as np import torch @@ -22,13 +24,17 @@ from . import functional -class DataPartitioner(object): +class DataPartitioner(ABC): + + @abstractmethod def _perform_partition(self): raise NotImplementedError + @abstractmethod def __getitem__(self, index): raise NotImplementedError + @abstractmethod def __len__(self): raise NotImplementedError diff --git a/tests/test_utils/test_dataset/test_partition.py b/tests/test_utils/test_dataset/test_partition.py new file mode 100644 index 00000000..9dcadff8 --- /dev/null +++ b/tests/test_utils/test_dataset/test_partition.py @@ -0,0 +1,70 @@ +# Copyright 2021 Peng Cheng Laboratory (http://www.szpclab.com/) and FedLab Authors (smilelab.group) + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import unittest +import os +import numpy as np +from fedlab.utils.dataset.partition import DataPartitioner, CIFAR10Partitioner + + +class DataPartitionerTestCase(unittest.TestCase): + @classmethod + def setUpClass(cls) -> None: + cls.num_samples = 10000 + cls.num_classes = 10 + cls.num_clients = 100 + + def setUp(self) -> None: + np.random.seed(2021) + + def test_len(self): + pass + + def test_item(self): + pass + + +class CIFAR10PartitionerTestCase(unittest.TestCase): + @classmethod + def setUpClass(cls) -> None: + cls.num_samples = 10000 + cls.num_classes = 10 + cls.num_clients = 100 + + def setUp(self) -> None: + np.random.seed(2021) + + def test_balance_iid(self): + pass + + def test_unbalance_iid(self): + pass + + def test_balance_dir(self): + pass + + def test_unbalance_dir(self): + pass + + def test_hetero_dir(self): + pass + + def test_shards(self): + pass + + def test_len(self): + pass + + def test_item(self): + pass From 738d2375fff8c41b9a77a79eaa1ed73e2baf1a80 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Thu, 23 Sep 2021 16:44:36 +0800 Subject: [PATCH 16/21] try to add unittest for Data partitioner class --- fedlab/utils/dataset/functional.py | 2 +- fedlab/utils/dataset/partition.py | 1 - .../test_utils/test_dataset/test_partition.py | 79 ++++++++++++------- 3 files changed, 53 insertions(+), 29 deletions(-) diff --git a/fedlab/utils/dataset/functional.py b/fedlab/utils/dataset/functional.py index 06544608..9d082ebe 100644 --- a/fedlab/utils/dataset/functional.py +++ b/fedlab/utils/dataset/functional.py @@ -126,7 +126,7 @@ def hetero_dir_partition(targets, num_clients, num_classes, dir_alpha, min_requi client_dict = dict() for cid in range(num_clients): np.random.shuffle(idx_batch[cid]) - client_dict[cid] = idx_batch[cid] + client_dict[cid] = np.array(idx_batch[cid]) return client_dict diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index 7d93c735..3b64cf5d 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -21,7 +21,6 @@ import torchvision from . import functional as F -from . import functional class DataPartitioner(ABC): diff --git a/tests/test_utils/test_dataset/test_partition.py b/tests/test_utils/test_dataset/test_partition.py index 9dcadff8..52cafa31 100644 --- a/tests/test_utils/test_dataset/test_partition.py +++ b/tests/test_utils/test_dataset/test_partition.py @@ -18,32 +18,51 @@ from fedlab.utils.dataset.partition import DataPartitioner, CIFAR10Partitioner -class DataPartitionerTestCase(unittest.TestCase): - @classmethod - def setUpClass(cls) -> None: - cls.num_samples = 10000 - cls.num_classes = 10 - cls.num_clients = 100 - - def setUp(self) -> None: - np.random.seed(2021) - - def test_len(self): - pass - - def test_item(self): - pass +# +# class DataPartitionerTestCase(unittest.TestCase): +# @classmethod +# def setUpClass(cls) -> None: +# cls.num_samples = 10000 +# cls.num_classes = 10 +# cls.num_clients = 100 +# +# def setUp(self) -> None: +# np.random.seed(2021) +# +# def test_len(self): +# pass +# +# def test_item(self): +# pass class CIFAR10PartitionerTestCase(unittest.TestCase): @classmethod def setUpClass(cls) -> None: - cls.num_samples = 10000 cls.num_classes = 10 - cls.num_clients = 100 + cls.num_clients = 50 + cls.seed = 2021 + targets = [] + for k in range(cls.num_classes): + targets.append([k for _ in range(5000)]) + cls.num_samples = len(targets) + targets = np.array(targets) + cls.targets = targets[np.random.permutation(cls.num_samples)] # shuffle + + # def setUp(self) -> None: + # np.random.seed(self.seed) + + # def test_hetero_dir(self): + # # perform partition + # hetero_dir_part = CIFAR10Partitioner(self.targets, + # self.num_clients, + # balance=None, + # partition="dirichlet", + # dir_alpha=0.3, + # seed=self.seed) - def setUp(self) -> None: - np.random.seed(2021) + def test_shards(self): + pass def test_balance_iid(self): pass @@ -57,14 +76,20 @@ def test_balance_dir(self): def test_unbalance_dir(self): pass - def test_hetero_dir(self): - pass - - def test_shards(self): - pass - def test_len(self): - pass + partitioner = CIFAR10Partitioner(self.targets, + self.num_clients, + balance=True, + partition="iid", + seed=self.seed) + self.assertEqual(len(partitioner), self.num_clients) def test_item(self): - pass + partitioner = CIFAR10Partitioner(self.targets, + self.num_clients, + balance=True, + partition="iid", + seed=self.seed) + res = [all(partitioner[cid] == partitioner.client_dict[cid]) for cid in + range(self.num_clients)] + self.assertTrue(all(res)) From e2d0a88f2e81c3cdae5e6216d3df902e1388a8dd Mon Sep 17 00:00:00 2001 From: AgentDS Date: Thu, 23 Sep 2021 17:23:36 +0800 Subject: [PATCH 17/21] have problem in data partiton test --- .../test_utils/test_dataset/test_partition.py | 86 +++++++++++++------ 1 file changed, 58 insertions(+), 28 deletions(-) diff --git a/tests/test_utils/test_dataset/test_partition.py b/tests/test_utils/test_dataset/test_partition.py index 52cafa31..e09eea61 100644 --- a/tests/test_utils/test_dataset/test_partition.py +++ b/tests/test_utils/test_dataset/test_partition.py @@ -15,7 +15,7 @@ import unittest import os import numpy as np -from fedlab.utils.dataset.partition import DataPartitioner, CIFAR10Partitioner +from fedlab.utils.dataset.partition import CIFAR10Partitioner # @@ -47,35 +47,9 @@ def setUpClass(cls) -> None: targets.append([k for _ in range(5000)]) cls.num_samples = len(targets) targets = np.array(targets) + np.random.seed(cls.seed) cls.targets = targets[np.random.permutation(cls.num_samples)] # shuffle - # def setUp(self) -> None: - # np.random.seed(self.seed) - - # def test_hetero_dir(self): - # # perform partition - # hetero_dir_part = CIFAR10Partitioner(self.targets, - # self.num_clients, - # balance=None, - # partition="dirichlet", - # dir_alpha=0.3, - # seed=self.seed) - - def test_shards(self): - pass - - def test_balance_iid(self): - pass - - def test_unbalance_iid(self): - pass - - def test_balance_dir(self): - pass - - def test_unbalance_dir(self): - pass - def test_len(self): partitioner = CIFAR10Partitioner(self.targets, self.num_clients, @@ -93,3 +67,59 @@ def test_item(self): res = [all(partitioner[cid] == partitioner.client_dict[cid]) for cid in range(self.num_clients)] self.assertTrue(all(res)) + + # def test_hetero_dir(self): + # # perform partition + # partition = CIFAR10Partitioner(self.targets, + # self.num_clients, + # balance=None, + # partition="dirichlet", + # dir_alpha=0.3, + # seed=self.seed) + # self.assertEqual(len(partition), self.num_clients) + # client_sample_nums = np.array([len(partition[cid]) for cid in range(self.num_clients)]) + # # sample number of each client should no less than number of classes + # self.assertTrue(all(client_sample_nums >= self.num_classes)) + # # sample number of each client should not be the same + # self.assertTrue(len(set(client_sample_nums)) >= 2) + + def test_shards(self): + num_shards = 200 + partition = CIFAR10Partitioner(self.targets, + self.num_clients, + balance=None, + partition="shards", + num_shards=num_shards, + seed=self.seed) + self.assertEqual(len(partition), self.num_clients) + self.assertTrue(all([len(partition) == ( + int(num_shards / self.num_clients) * int(self.num_samples / num_shards))])) + + def test_balance_iid(self): + partition = CIFAR10Partitioner(self.targets, + self.num_clients, + balance=True, + partition="iid", + seed=self.seed) + self.assertEqual(len(partition), self.num_clients) + # check balance + client_sample_nums = np.array([len(partition[cid]) for cid in range(self.num_clients)]) + self.assertTrue(all(client_sample_nums == int(self.num_samples / self.num_clients))) + + def test_unbalance_iid(self): + partition = CIFAR10Partitioner(self.targets, + self.num_clients, + balance=False, + partition="iid", + unbalance_sgm=0.3, + seed=self.seed) + self.assertEqual(len(partition), self.num_clients) + # check unbalance + client_sample_nums = [len(partition[cid]) for cid in range(self.num_clients)] + self.assertTrue(len(set(client_sample_nums)) >= 2) + + def test_balance_dir(self): + pass + + def test_unbalance_dir(self): + pass From 69ea43edaa04fbc1c751522a457bdd9554356983 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Thu, 23 Sep 2021 21:23:47 +0800 Subject: [PATCH 18/21] add test for partition --- .../test_dataset/test_functional.py | 4 +- .../test_utils/test_dataset/test_partition.py | 75 ++++++++++++++----- 2 files changed, 57 insertions(+), 22 deletions(-) diff --git a/tests/test_utils/test_dataset/test_functional.py b/tests/test_utils/test_dataset/test_functional.py index 27833211..7a91c4d1 100644 --- a/tests/test_utils/test_dataset/test_functional.py +++ b/tests/test_utils/test_dataset/test_functional.py @@ -129,7 +129,7 @@ def test_client_inner_dirichlet_partition(self): self.num_classes, dir_alpha=0.3, client_sample_nums=client_sample_nums, - verbose=True) + verbose=False) self._client_inner_dirichlet_content_check(client_dict, client_sample_nums) # use list targets @@ -138,7 +138,7 @@ def test_client_inner_dirichlet_partition(self): self.num_classes, dir_alpha=0.3, client_sample_nums=client_sample_nums, - verbose=True) + verbose=False) self._client_inner_dirichlet_content_check(client_dict, client_sample_nums) def _client_inner_dirichlet_content_check(self, client_dict, client_sample_nums): diff --git a/tests/test_utils/test_dataset/test_partition.py b/tests/test_utils/test_dataset/test_partition.py index e09eea61..122d2a93 100644 --- a/tests/test_utils/test_dataset/test_partition.py +++ b/tests/test_utils/test_dataset/test_partition.py @@ -44,17 +44,18 @@ def setUpClass(cls) -> None: cls.seed = 2021 targets = [] for k in range(cls.num_classes): - targets.append([k for _ in range(5000)]) + targets.extend([k for _ in range(500)]) cls.num_samples = len(targets) targets = np.array(targets) np.random.seed(cls.seed) - cls.targets = targets[np.random.permutation(cls.num_samples)] # shuffle + cls.targets = targets[np.random.permutation(cls.num_samples)].tolist() # shuffle def test_len(self): partitioner = CIFAR10Partitioner(self.targets, self.num_clients, balance=True, partition="iid", + verbose=False, seed=self.seed) self.assertEqual(len(partitioner), self.num_clients) @@ -63,25 +64,27 @@ def test_item(self): self.num_clients, balance=True, partition="iid", + verbose=False, seed=self.seed) res = [all(partitioner[cid] == partitioner.client_dict[cid]) for cid in range(self.num_clients)] self.assertTrue(all(res)) - # def test_hetero_dir(self): - # # perform partition - # partition = CIFAR10Partitioner(self.targets, - # self.num_clients, - # balance=None, - # partition="dirichlet", - # dir_alpha=0.3, - # seed=self.seed) - # self.assertEqual(len(partition), self.num_clients) - # client_sample_nums = np.array([len(partition[cid]) for cid in range(self.num_clients)]) - # # sample number of each client should no less than number of classes - # self.assertTrue(all(client_sample_nums >= self.num_classes)) - # # sample number of each client should not be the same - # self.assertTrue(len(set(client_sample_nums)) >= 2) + def test_hetero_dir(self): + # perform partition + partition = CIFAR10Partitioner(self.targets, + self.num_clients, + balance=None, + partition="dirichlet", + dir_alpha=0.3, + verbose=False, + seed=self.seed) + self.assertEqual(len(partition), self.num_clients) + client_sample_nums = np.array([partition[cid].shape[0] for cid in range(self.num_clients)]) + # sample number of each client should no less than number of classes + self.assertTrue(all(client_sample_nums >= self.num_classes)) + # sample number of each client should not be the same + self.assertTrue(len(set(client_sample_nums)) >= 2) def test_shards(self): num_shards = 200 @@ -90,6 +93,7 @@ def test_shards(self): balance=None, partition="shards", num_shards=num_shards, + verbose=False, seed=self.seed) self.assertEqual(len(partition), self.num_clients) self.assertTrue(all([len(partition) == ( @@ -100,10 +104,11 @@ def test_balance_iid(self): self.num_clients, balance=True, partition="iid", + verbose=False, seed=self.seed) self.assertEqual(len(partition), self.num_clients) # check balance - client_sample_nums = np.array([len(partition[cid]) for cid in range(self.num_clients)]) + client_sample_nums = np.array([partition[cid].shape[0] for cid in range(self.num_clients)]) self.assertTrue(all(client_sample_nums == int(self.num_samples / self.num_clients))) def test_unbalance_iid(self): @@ -112,14 +117,44 @@ def test_unbalance_iid(self): balance=False, partition="iid", unbalance_sgm=0.3, + verbose=False, seed=self.seed) self.assertEqual(len(partition), self.num_clients) # check unbalance - client_sample_nums = [len(partition[cid]) for cid in range(self.num_clients)] + client_sample_nums = [partition[cid].shape[0] for cid in range(self.num_clients)] self.assertTrue(len(set(client_sample_nums)) >= 2) def test_balance_dir(self): - pass + partition = CIFAR10Partitioner(self.targets, + self.num_clients, + balance=True, + partition="dirichlet", + dir_alpha=0.3, + verbose=False, + seed=self.seed) + # check balance + client_sample_nums = np.array([partition[cid].shape[0] for cid in range(self.num_clients)]) + self.assertTrue(all(client_sample_nums == int(self.num_samples / self.num_clients))) def test_unbalance_dir(self): - pass + partition = CIFAR10Partitioner(self.targets, + self.num_clients, + balance=False, + partition="dirichlet", + unbalance_sgm=0.3, + dir_alpha=0.3, + verbose=False, + seed=self.seed) + # check unbalance + client_sample_nums = [partition[cid].shape[0] for cid in range(self.num_clients)] + self.assertTrue(len(set(client_sample_nums)) >= 2) + + def test_invalid_balance(self): + with self.assertRaises(ValueError): + partition = CIFAR10Partitioner(self.targets, + self.num_clients, + balance='this', + partition="iid", + verbose=False, + seed=self.seed) + From 473134e22ae2f54fb71d190b22f99d11755c3518 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Thu, 23 Sep 2021 21:24:50 +0800 Subject: [PATCH 19/21] remove comments --- .../test_dataset/test_functional.py | 2 +- .../test_utils/test_dataset/test_partition.py | 24 +++---------------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/tests/test_utils/test_dataset/test_functional.py b/tests/test_utils/test_dataset/test_functional.py index 7a91c4d1..118b582f 100644 --- a/tests/test_utils/test_dataset/test_functional.py +++ b/tests/test_utils/test_dataset/test_functional.py @@ -145,5 +145,5 @@ def _client_inner_dirichlet_content_check(self, client_dict, client_sample_nums) # check number of partition parts self.assertTrue(len(client_dict) == self.num_clients) # check sample number for each client - self.assertTrue(all([len(client_dict[cid]) == client_sample_nums[cid] for cid in + self.assertTrue(all([client_dict[cid].shape[0] == client_sample_nums[cid] for cid in range(self.num_clients)])) diff --git a/tests/test_utils/test_dataset/test_partition.py b/tests/test_utils/test_dataset/test_partition.py index 122d2a93..e81519c2 100644 --- a/tests/test_utils/test_dataset/test_partition.py +++ b/tests/test_utils/test_dataset/test_partition.py @@ -18,24 +18,6 @@ from fedlab.utils.dataset.partition import CIFAR10Partitioner -# -# class DataPartitionerTestCase(unittest.TestCase): -# @classmethod -# def setUpClass(cls) -> None: -# cls.num_samples = 10000 -# cls.num_classes = 10 -# cls.num_clients = 100 -# -# def setUp(self) -> None: -# np.random.seed(2021) -# -# def test_len(self): -# pass -# -# def test_item(self): -# pass - - class CIFAR10PartitionerTestCase(unittest.TestCase): @classmethod def setUpClass(cls) -> None: @@ -96,8 +78,9 @@ def test_shards(self): verbose=False, seed=self.seed) self.assertEqual(len(partition), self.num_clients) - self.assertTrue(all([len(partition) == ( - int(num_shards / self.num_clients) * int(self.num_samples / num_shards))])) + self.assertTrue(all([partition[cid].shape[0] == ( + int(num_shards / self.num_clients) * int(self.num_samples / num_shards)) for cid in + range(self.num_clients)])) def test_balance_iid(self): partition = CIFAR10Partitioner(self.targets, @@ -157,4 +140,3 @@ def test_invalid_balance(self): partition="iid", verbose=False, seed=self.seed) - From 742110121eb5f9303066b4e79af3128caa9ee91d Mon Sep 17 00:00:00 2001 From: AgentDS Date: Fri, 24 Sep 2021 00:22:55 +0800 Subject: [PATCH 20/21] data partition test done, need to run on local server for coverage --- fedlab/utils/dataset/functional.py | 34 +++++++++++-------- tests/test_core/test_network.py | 2 +- .../test_dataset/test_functional.py | 24 ++++++++----- tests/test_utils/test_functional.py | 19 +++++++++-- 4 files changed, 53 insertions(+), 26 deletions(-) diff --git a/fedlab/utils/dataset/functional.py b/fedlab/utils/dataset/functional.py index 9d082ebe..d434af4c 100644 --- a/fedlab/utils/dataset/functional.py +++ b/fedlab/utils/dataset/functional.py @@ -55,20 +55,22 @@ def lognormal_unbalance_partition(num_clients, num_samples, unbalance_sgm): """ num_samples_per_client = int(num_samples / num_clients) - client_sample_nums = np.random.lognormal(mean=np.log(num_samples_per_client), - sigma=unbalance_sgm, - size=num_clients) - client_sample_nums = ( - client_sample_nums / np.sum(client_sample_nums) * num_samples).astype( - int) - diff = np.sum(client_sample_nums) - num_samples # diff <= 0 - - # Add/Subtract the excess number starting from first client - if diff != 0: - for cid in range(num_clients): - if client_sample_nums[cid] > diff: - client_sample_nums[cid] -= diff - break + if unbalance_sgm != 0: + client_sample_nums = np.random.lognormal(mean=np.log(num_samples_per_client), + sigma=unbalance_sgm, + size=num_clients) + client_sample_nums = ( + client_sample_nums / np.sum(client_sample_nums) * num_samples).astype(int) + diff = np.sum(client_sample_nums) - num_samples # diff <= 0 + + # Add/Subtract the excess number starting from first client + if diff != 0: + for cid in range(num_clients): + if client_sample_nums[cid] > diff: + client_sample_nums[cid] -= diff + break + else: + client_sample_nums = (np.ones(num_clients) * num_samples_per_client).astype(int) return client_sample_nums @@ -204,7 +206,9 @@ def client_inner_dirichlet_partition(targets, num_clients, num_classes, dir_alph dict: ``{ client_id: indices}``. """ - # perm_targets = self.targets[rand_perm] + if not isinstance(targets, np.ndarray): + targets = np.array(targets) + class_priors = np.random.dirichlet(alpha=[dir_alpha] * num_classes, size=num_clients) prior_cumsum = np.cumsum(class_priors, axis=1) diff --git a/tests/test_core/test_network.py b/tests/test_core/test_network.py index e48ca329..548c56b6 100644 --- a/tests/test_core/test_network.py +++ b/tests/test_core/test_network.py @@ -27,5 +27,5 @@ def setUp(self) -> None: def tearDown(self) -> None: self.cnet.close_network_connection() - def test_(self): + def test_network_connection(self): print(self.cnet) diff --git a/tests/test_utils/test_dataset/test_functional.py b/tests/test_utils/test_dataset/test_functional.py index 118b582f..4c3f6ad7 100644 --- a/tests/test_utils/test_dataset/test_functional.py +++ b/tests/test_utils/test_dataset/test_functional.py @@ -22,9 +22,9 @@ class DatasetFunctionalTestCase(unittest.TestCase): @classmethod def setUpClass(cls) -> None: - cls.num_samples = 10000 - cls.num_classes = 10 - cls.num_clients = 100 + cls.num_samples = 1000 + cls.num_classes = 5 + cls.num_clients = 20 def setUp(self) -> None: np.random.seed(2021) @@ -69,7 +69,7 @@ def test_lognormal_unbalance_partition(self): def test_hetero_dir_partition(self): # use np.ndarray targets - targets = np.random.randint(10, size=self.num_samples) + targets = np.random.randint(self.num_classes, size=self.num_samples) client_dict = F.hetero_dir_partition(targets, self.num_clients, self.num_classes, 0.3) @@ -95,7 +95,7 @@ def _hetero_content_check(self, client_dict): def test_shards_partition(self): num_shards = 200 - targets = np.random.randint(10, size=self.num_samples) + targets = np.random.randint(self.num_classes, size=self.num_samples) # use np.ndarray targets client_dict = F.shards_partition(targets, self.num_clients, num_shards) @@ -120,7 +120,7 @@ def _shards_content_check(self, client_dict, num_shards): range(self.num_clients)])) def test_client_inner_dirichlet_partition(self): - targets = np.random.randint(10, size=self.num_samples) + targets = np.random.randint(self.num_classes, size=self.num_samples) client_sample_nums = F.balance_partition(self.num_clients, self.num_samples) # use np.ndarray targets @@ -128,7 +128,7 @@ def test_client_inner_dirichlet_partition(self): self.num_clients, self.num_classes, dir_alpha=0.3, - client_sample_nums=client_sample_nums, + client_sample_nums=client_sample_nums.copy(), verbose=False) self._client_inner_dirichlet_content_check(client_dict, client_sample_nums) @@ -137,10 +137,18 @@ def test_client_inner_dirichlet_partition(self): self.num_clients, self.num_classes, dir_alpha=0.3, - client_sample_nums=client_sample_nums, + client_sample_nums=client_sample_nums.copy(), verbose=False) self._client_inner_dirichlet_content_check(client_dict, client_sample_nums) + # check verbose + F.client_inner_dirichlet_partition([0, 0, 1, 1, 2, 1, 3, 3, 4, 4], + num_clients=2, + num_classes=5, + dir_alpha=0.3, + client_sample_nums=np.array([5, 5]).astype(int), + verbose=True) + def _client_inner_dirichlet_content_check(self, client_dict, client_sample_nums): # check number of partition parts self.assertTrue(len(client_dict) == self.num_clients) diff --git a/tests/test_utils/test_functional.py b/tests/test_utils/test_functional.py index a1b9a603..b5c03f2c 100644 --- a/tests/test_utils/test_functional.py +++ b/tests/test_utils/test_functional.py @@ -15,14 +15,15 @@ import unittest import random import os -from numpy import save +import numpy as np + import torch from torch import nn import torchvision import torchvision.transforms as transforms from fedlab.utils.functional import AverageMeter, get_best_gpu, evaluate, save_dict, load_dict -from fedlab.utils.functional import read_config_from_json +from fedlab.utils.functional import read_config_from_json, partition_report class FunctionalTestCase(unittest.TestCase): @@ -110,3 +111,17 @@ def forward(self, x): @unittest.skipUnless(torch.cuda.is_available(), "CUDA is required") def test_get_gpu(self): gpu = get_best_gpu() + + def test_partition_report(self): + np.random.seed(0) + data_indices = {0: np.array([0, 1, 2]), + 1: np.array([3, 4, 5]), + 2: np.array([6, 7, 8])} + labels = np.array([0] * 3 + [1] * 3 + [2] * 3) + labels = labels[np.random.permutation(9)] + file = os.path.join(os.path.dirname(__file__), "tmp.csv") + partition_report(labels, data_indices, class_num=3, verbose=True, file=None) + partition_report(labels, data_indices, class_num=3, verbose=False, file=file) + self.assertTrue(os.path.exists(file)) + if os.path.exists(file): + os.remove(file) From 762e6b2f49a00a428349b6015f64e42b5edc30c2 Mon Sep 17 00:00:00 2001 From: AgentDS Date: Fri, 24 Sep 2021 15:52:58 +0800 Subject: [PATCH 21/21] .. --- fedlab/utils/dataset/partition.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fedlab/utils/dataset/partition.py b/fedlab/utils/dataset/partition.py index 3b64cf5d..797fc8f0 100644 --- a/fedlab/utils/dataset/partition.py +++ b/fedlab/utils/dataset/partition.py @@ -37,6 +37,10 @@ def __getitem__(self, index): def __len__(self): raise NotImplementedError + @abstractmethod + def _samples_num_count(self): + raise NotImplementedError + class CIFAR10Partitioner(DataPartitioner): """CIFAR10 data partitioner.