def summary(self, ignore=('epoch', 'iteration')): """ Computes averages of metrics stored in the cache Args: ignore (list): these metrics will be ignored and removed from the summary """ s = defaultdict(list) for m in self.log: for k, v in m.items(): if k not in ignore: s[k].append(v) for k, v in s.items(): s[k] = sum(v) / len(v) return s if __name__ == '__main__': from dashboard import writer import time r = Reporter() writers = [writer.ConsoleWriter()] for i in range(10): d = {'iteration': i, 'score': i * 2} r.add(d) for w in writers: w.add(d) time.sleep(1)
self.user = self.fb.auth().refresh(self.user['refreshToken']) try: self.fb.database().child('experiments').child(self.name).push(metrics, self.user['idToken']) except Exception as e: print('Could not write to Dashboard') print(e) if __name__ == '__main__': from dashboard import writer from time import sleep import numpy as np import random random.seed() console_writer = writer.ConsoleWriter() file_writer = writer.FileWriter('foo.log') # writes to 'foo.log' for epoch in range(3): for i in range(2): metrics = {'f1': np.random.uniform(0, 1), 'iteration': i, 'epoch': epoch} console_writer.add(metrics) file_writer.add(metrics) sleep(0.5) exp1_hyperparams = {'d_hid': 100, 'dropout': 0.5, 'model': 'foo'} exp2_hyperparams = {'d_hid': 200, 'dropout': 0.3, 'model': 'bar', 'comment': 'hello world!'} writer1 = writer.FirebaseWriter('myexp1', exp1_hyperparams, delete_existing=True) writer2 = writer.FirebaseWriter('myexp2', exp2_hyperparams, delete_existing=True) for i in range(5): writer1.add({'iteration': i, 'score': random.uniform(0, 10)}) writer2.add({'iteration': i, 'score': random.uniform(0, 10)})
def setUp(self): self.w = writer.ConsoleWriter()