From a0879111c0b866ca787c1a36e1179487601693e8 Mon Sep 17 00:00:00 2001 From: Lorenzo Date: Sat, 25 May 2024 12:19:52 +0200 Subject: [PATCH 1/2] fixed double logged train loss and boolean parser --- micromind/core.py | 1 - micromind/utils/helpers.py | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/micromind/core.py b/micromind/core.py index 835b1ec5..2f887beb 100644 --- a/micromind/core.py +++ b/micromind/core.py @@ -527,7 +527,6 @@ def train( self.accelerator.backward(loss) self.opt.step() - loss_epoch += loss.item() if hasattr(self, "lr_sched"): # ok for cos_lr self.lr_sched.step() diff --git a/micromind/utils/helpers.py b/micromind/utils/helpers.py index 43b51d75..ac851631 100644 --- a/micromind/utils/helpers.py +++ b/micromind/utils/helpers.py @@ -31,8 +31,7 @@ def override_conf(hparams: Dict): """ parser = argparse.ArgumentParser(description="MicroMind experiment configuration.") for key, value in hparams.items(): - parser.add_argument(f"--{key}", type=type(value), default=value) - + parser.add_argument(f"--{key}", type=str2bool if isinstance(value, bool) else type(value), default=value) args, extra_args = parser.parse_known_args() for key, value in vars(args).items(): if value is not None: @@ -78,3 +77,14 @@ def get_logger(): logger.add(sys.stderr, format=fmt) return logger + + +def str2bool(v): + if isinstance(v, bool): + return v + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise argparse.ArgumentTypeError('Boolean value expected.') From bfe882c160940b7898cf21dd6f89dbab66ab7dc0 Mon Sep 17 00:00:00 2001 From: Francesco Paissan <46992226+fpaissan@users.noreply.github.com> Date: Mon, 27 May 2024 09:48:25 +0200 Subject: [PATCH 2/2] fix linters --- micromind/utils/helpers.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/micromind/utils/helpers.py b/micromind/utils/helpers.py index ac851631..1522857e 100644 --- a/micromind/utils/helpers.py +++ b/micromind/utils/helpers.py @@ -31,7 +31,11 @@ def override_conf(hparams: Dict): """ parser = argparse.ArgumentParser(description="MicroMind experiment configuration.") for key, value in hparams.items(): - parser.add_argument(f"--{key}", type=str2bool if isinstance(value, bool) else type(value), default=value) + parser.add_argument( + f"--{key}", + type=str2bool if isinstance(value, bool) else type(value), + default=value, + ) args, extra_args = parser.parse_known_args() for key, value in vars(args).items(): if value is not None: @@ -82,9 +86,9 @@ def get_logger(): def str2bool(v): if isinstance(v, bool): return v - if v.lower() in ('yes', 'true', 't', 'y', '1'): + if v.lower() in ("yes", "true", "t", "y", "1"): return True - elif v.lower() in ('no', 'false', 'f', 'n', '0'): + elif v.lower() in ("no", "false", "f", "n", "0"): return False else: - raise argparse.ArgumentTypeError('Boolean value expected.') + raise argparse.ArgumentTypeError("Boolean value expected.")