Skip to content

Commit

Permalink
switch the id prefix to real id
Browse files Browse the repository at this point in the history
  • Loading branch information
chesterxgchen committed Aug 26, 2024
1 parent 8988a8c commit af0c4e5
Showing 1 changed file with 9 additions and 10 deletions.
19 changes: 9 additions & 10 deletions nvflare/job_config/stats_job.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def __init__(
):
super().__init__()
self.writer_id = "stats_writer"
self.stats_generator_id = "stats_generator"
self.stats_generator_id_prefix = "stats_generator"
self.job_name = job_name
self.stats_generator = stats_generator
self.statistic_configs = statistic_configs
Expand All @@ -53,17 +53,17 @@ def __init__(
def setup_server(self):
# define stats controller
ctr = self.get_stats_controller()
self.to(ctr, "server")
# define stat writer to output Json file
stats_writer = self.get_stats_output_writer()
self.to(ctr, "server")
self.to(stats_writer, "server", id=self.writer_id)

def setup_client(self, sites: List[str]):
# Client side job config
# Add client site
for site_id in sites:
self.to(self.stats_generator, site_id, id=self.stats_generator_id)
executor = StatisticsExecutor(generator_id=self.stats_generator_id)
stats_generator_id = self.to(self.stats_generator, site_id, id=self.stats_generator_id_prefix)
executor = StatisticsExecutor(generator_id=stats_generator_id)
self.to(executor, site_id, tasks=["fed_stats_pre_run", "fed_stats"])
self.add_privacy_result_filters(site_id)

Expand All @@ -78,13 +78,12 @@ def get_stats_output_writer(self):

def add_privacy_result_filters(self, site_id: str):
# add privacy filters
result_cleanser_ids = ["min_count_cleanser", "min_max_noise_cleanser", "hist_bins_cleanser"]
result_filter = StatisticsPrivacyFilter(result_cleanser_ids=result_cleanser_ids)

min_count_cleanser = MinCountCleanser(min_count=self.min_count)
min_max_cleanser = AddNoiseToMinMax(min_noise_level=self.min_noise_level, max_noise_level=self.max_noise_level)
hist_bins_cleanser = HistogramBinsCleanser(max_bins_percent=self.max_bins_percent)
self.to(min_count_cleanser, site_id, id="min_count_cleanser")
self.to(min_max_cleanser, site_id, id="min_max_noise_cleanser")
self.to(hist_bins_cleanser, site_id, id="hist_bins_cleanser")
result_cleanser_ids = [self.to(min_count_cleanser, site_id, id="min_count_cleanser"),
self.to(min_max_cleanser, site_id, id="min_max_noise_cleanser"),
self.to(hist_bins_cleanser, site_id, id="hist_bins_cleanser")]

result_filter = StatisticsPrivacyFilter(result_cleanser_ids=result_cleanser_ids)
self.to(result_filter, site_id, filter_type=FilterType.TASK_RESULT, tasks=["fed_stats"])

0 comments on commit af0c4e5

Please sign in to comment.