Skip to content

Commit

Permalink
avoid double reporting metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
delverme-equi committed Dec 4, 2023
1 parent 18376ef commit 128058c
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
21 changes: 19 additions & 2 deletions experiment_buddy/experiment_buddy.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,26 @@ def __init__(self, experiment_id, debug, wandb_kwargs):
wandb_kwargs["settings"] = wandb_kwargs.get("settings", wandb.Settings(start_method="fork"))

self.run = wandb.init(name=experiment_id, **wandb_kwargs)
self.already_logged = set()

def log(self, metrics_dict, **kwargs):
# args, = args
if isinstance(metrics_dict, dict):
new_keys = set(metrics_dict.keys())
if new_keys.issubset(self.already_logged):
raise ValueError(f"Keys {new_keys - self.already_logged} already logged")
self.already_logged.update(new_keys)
elif isinstance(metrics_dict, str):
if metrics_dict in self.already_logged:
raise ValueError(f"Key {metrics_dict} already logged")
self.already_logged.add(metrics_dict)
else:
raise ValueError(f"Invalid type {type(metrics_dict)}")

self.run.log(metrics_dict, **kwargs)

def log(self, *args, **kwargs):
self.run.log(*args, **kwargs)
if "commit" in kwargs and kwargs["commit"]:
self.already_logged = set()


def deploy(url: str = "", sweep_definition: str = "", proc_num: int = 1, wandb_kwargs=None,
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

setup(
name='experiment_buddy',
version='0.0.19',
version='0.0.20',
packages=["experiment_buddy", "experiment_buddy.buddy_init", "scripts"],
package_data={'scripts': ['*/*.sh']},
url='https://github.com/ministry-of-silly-code/experiment_buddy/',
Expand Down

0 comments on commit 128058c

Please sign in to comment.