From 8174663596b0cc671d6a2eec1b86a2f0ba4830dc Mon Sep 17 00:00:00 2001 From: barikata1984 Date: Mon, 6 Nov 2023 23:40:37 -0500 Subject: [PATCH 1/2] put wandb setup first in _setup_dashboards and arrange cast data passed to wandb.Table into a double-nested list --- wisp/trainers/tracker/tracker.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/wisp/trainers/tracker/tracker.py b/wisp/trainers/tracker/tracker.py index fd336b1..0974982 100644 --- a/wisp/trainers/tracker/tracker.py +++ b/wisp/trainers/tracker/tracker.py @@ -178,16 +178,6 @@ def _setup_dashboards(cfg: ConfigTracker, exp_name: str, log_fname: str): This function is invoked from the Tracker constructor, and must run before performing any experiment logging. """ dashboards: Dict[str, _BaseDashboard] = dict() - if cfg.enable_tensorboard: - if cfg.tensorboard.exp_name is None: - cfg.tensorboard.exp_name = exp_name - if cfg.tensorboard.log_fname is None: - cfg.tensorboard.log_fname = log_fname - if _TENSORBOARD_AVAILABLE: - dashboards['tensorboard'] = instantiate(cfg.tensorboard) - else: - log.warning("Tensorboard experiment tracking enabled, " - "but couldn't import torch.utils.tensorboard.SummaryBoard") if cfg.enable_wandb: if cfg.wandb.entity is None: raise Exception("You must set your username as the entity to use Wandb") @@ -201,6 +191,16 @@ def _setup_dashboards(cfg: ConfigTracker, exp_name: str, log_fname: str): dashboards['wandb'] = instantiate(cfg.wandb) else: log.warning("wandb experiment tracking enabled, but couldn't import wandb") + if cfg.enable_tensorboard: + if cfg.tensorboard.exp_name is None: + cfg.tensorboard.exp_name = exp_name + if cfg.tensorboard.log_fname is None: + cfg.tensorboard.log_fname = log_fname + if _TENSORBOARD_AVAILABLE: + dashboards['tensorboard'] = instantiate(cfg.tensorboard) + else: + log.warning("Tensorboard experiment tracking enabled, " + "but couldn't import torch.utils.tensorboard.SummaryBoard") return dashboards def teardown(self): @@ -450,7 +450,7 @@ def teardown(self): wandb.finish() def log_table(self, caption: str, data: Dict[str, Any], step=None): - table = wandb.Table(columns=data.keys(), data=data.values()) + table = wandb.Table(columns=data.keys(), data=[[*data.values()]]) wandb.log({caption: table}, step=step, commit=False) def log_metric(self, metric, value, step=None): From 04f07d940a10ba3c02c86fed31b209ca07c385cb Mon Sep 17 00:00:00 2001 From: barikata1984 Date: Tue, 7 Nov 2023 00:31:47 -0500 Subject: [PATCH 2/2] cast data.keys() into a list as well --- wisp/trainers/tracker/tracker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wisp/trainers/tracker/tracker.py b/wisp/trainers/tracker/tracker.py index 0974982..516aa77 100644 --- a/wisp/trainers/tracker/tracker.py +++ b/wisp/trainers/tracker/tracker.py @@ -450,7 +450,7 @@ def teardown(self): wandb.finish() def log_table(self, caption: str, data: Dict[str, Any], step=None): - table = wandb.Table(columns=data.keys(), data=[[*data.values()]]) + table = wandb.Table(columns=[*data.keys()], data=[[*data.values()]]) wandb.log({caption: table}, step=step, commit=False) def log_metric(self, metric, value, step=None):