def add_client(self, c: Client): if c.id not in self.clients.keys(): if not self.is_full(): self.clients[c.id] = c self.client_ids.append(c.id) c.set_group(self) else: print("Warning: Group {:2d} is full.".format(self.id)) else: print("Warning: Client {} alreay in {:2d} group.".format(c.id, self.id))
def setup_clients(self, dataset, data_partition_seed, dataset_adv, model=None): '''instantiates clients based on given train and test data directories Return: list of Clients ''' users, groups, train_data, test_data = dataset # AM: users_adv, groups_adv, train_data_adv, test_data_adv = dataset_adv if len(groups) == 0: groups = [None for _ in users] if len(groups_adv) == 0: groups_adv = [None for _ in users_adv] all_clients = [Client(u, g, train_data[u], test_data[u], data_partition_seed, model) for u, g in zip(users, groups)] # AM: all_clients_adv = [Client(u, g, train_data_adv[u], test_data_adv[u], data_partition_seed, model, is_adversary=True) for u, g in zip(users_adv, groups_adv)] return (all_clients + all_clients_adv)
def setup_clients(self, dataset, model=None, model1=None): '''instantiates clients based on given train and test data directories Return: list of Clients ''' users, groups, train_data, test_data = dataset if len(groups) == 0: groups = [None for _ in users] client_low = [] client_high = [] # print(len(users)) i = 0 for u, g in zip(users, groups): if i < self.original_params['drop_percent'] * len(users): k = 0 if "synthetic" in self.original_params['dataset']: self.original_params['num_features'] = 60 k = random.randint( k, self.original_params['num_features'] / 2 - 1) for j in range(0, len(train_data[u]['x'])): train_data[u]['x'][j] = train_data[u]['x'][ j][k:k + int(self.original_params['num_features'] / 2)] for j in range(0, len(test_data[u]['x'])): test_data[u]['x'][j] = test_data[u]['x'][ j][k:k + int(self.original_params['num_features'] / 2)] startarray = [ k, k + 1, k + 2, k + 3, k + 4, k + 5, k + 6, k + 7, k + 8, k + 9, k + 10, k + 11, k + 12, k + 13, k + 14, k + 15, k + 16, k + 17, k + 18, k + 19, k + 20, k + 21, k + 22, k + 23, k + 24, k + 25, k + 26, k + 27, k + 28, k + 29 ] client_low.append( Client(u, g, train_data[u], test_data[u], model, startarray)) else: client_high.append( Client(u, g, train_data[u], test_data[u], model1)) i = i + 1 return client_low, client_high
def setup_clients(self, dataset, model=None): '''instantiates clients based on given train and test data directories Return: list of Clients ''' users, groups, train_data, test_data = dataset if len(groups) == 0: groups = [None for _ in users] all_clients = [Client(u, g, train_data[u], test_data[u], model) for u, g in zip(users, groups)] return all_clients
def setup_clients(self, dataset, dataset_name, model_name, model=None): '''instantiates clients based on given train and test data directories Return: list of Clients ''' users, groups, train_data, test_data = dataset if len(groups) == 0: groups = [None for _ in users] all_clients = [Client(id=u, group=g, dataset_name=dataset_name, model_name=model_name, # noqa: E501 train_data=train_data[u], eval_data=test_data[u], model=model) for u, g in zip(users, groups)] # noqa: E501 return all_clients
def setup_clients(self, dataset, model=None): '''instantiates clients based on given train and test data directories Return: list of Clients ''' users, groups, train_data, test_data = dataset # If groups is empty, then it does something with nulling for every underscore in users if len(groups) == 0: groups = [None for _ in users] # The data in users and groups is being indexed together with zip() all_clients = [ Client(u, g, train_data[u], test_data[u], model) for u, g in zip(users, groups) ] return all_clients
def setup_clients(self, dataset, model=None): """ 设置客户端 :param dataset: 数据集元素 :param model: 模型 :return: """ users, groups, train_data, test_data = dataset assert 'x' in train_data[users[-1]], '只能支持处理后的数据' if len(groups) == 0: groups = [None for _ in users] all_clients = [ Client(u, g, train_data[u], test_data[u], model) for u, g in zip(users, groups) ] return all_clients