From 3cfecc0cab21f73d4b3dae8cf74d73a485897b50 Mon Sep 17 00:00:00 2001 From: rayrayraykk <18007356109@163.com> Date: Tue, 13 Sep 2022 11:02:05 +0800 Subject: [PATCH 1/3] fix early stop best --- federatedscope/core/monitors/early_stopper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/federatedscope/core/monitors/early_stopper.py b/federatedscope/core/monitors/early_stopper.py index 0a5f55725..d170fe9dc 100644 --- a/federatedscope/core/monitors/early_stopper.py +++ b/federatedscope/core/monitors/early_stopper.py @@ -60,8 +60,8 @@ def __track_and_check_best(self, history_result): # by default: add(val_loss, -delta) < new_result self.counter_no_improve += 1 elif not self.the_smaller_the_better and self.comparator( - self.improvement_operator(self.best_metric, self.delta), - new_result): + new_result, + self.improvement_operator(self.best_metric, self.delta)): # typical case: add(eval_score, delta) > new_result self.counter_no_improve += 1 else: From cae13aef5ab41449adde480d7820e0ba3fe00d91 Mon Sep 17 00:00:00 2001 From: rayrayraykk <18007356109@163.com> Date: Tue, 13 Sep 2022 11:06:21 +0800 Subject: [PATCH 2/3] fix early stop mean --- federatedscope/core/monitors/early_stopper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/federatedscope/core/monitors/early_stopper.py b/federatedscope/core/monitors/early_stopper.py index d170fe9dc..c52427241 100644 --- a/federatedscope/core/monitors/early_stopper.py +++ b/federatedscope/core/monitors/early_stopper.py @@ -80,9 +80,10 @@ def __track_and_check_mean(self, history_result): -self.delta), new_result): self.early_stopped = True elif not self.the_smaller_the_better and self.comparator( + new_result, self.improvement_operator( np.mean(history_result[-self.patience - 1:-1]), - self.delta), new_result): + self.delta)): self.early_stopped = True else: self.early_stopped = False From 93c3a8dd14500e1d7615d3779277145207010ed3 Mon Sep 17 00:00:00 2001 From: rayrayraykk <18007356109@163.com> Date: Tue, 13 Sep 2022 11:25:06 +0800 Subject: [PATCH 3/3] update comments --- federatedscope/core/monitors/early_stopper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/federatedscope/core/monitors/early_stopper.py b/federatedscope/core/monitors/early_stopper.py index c52427241..ab3516305 100644 --- a/federatedscope/core/monitors/early_stopper.py +++ b/federatedscope/core/monitors/early_stopper.py @@ -57,12 +57,12 @@ def __track_and_check_best(self, history_result): elif self.the_smaller_the_better and self.comparator( self.improvement_operator(self.best_metric, -self.delta), new_result): - # by default: add(val_loss, -delta) < new_result + # add(best_metric, -delta) < new_result self.counter_no_improve += 1 elif not self.the_smaller_the_better and self.comparator( new_result, self.improvement_operator(self.best_metric, self.delta)): - # typical case: add(eval_score, delta) > new_result + # new_result < add(best_metric, delta) self.counter_no_improve += 1 else: self.best_metric = new_result