import locustdb
import time
import wandb
import requests
entity = "entity-neural-network"
project = "enn-ppo"
run_id = "220511-055353-xor-num_envs=256-ent_coef=0.003-dmodel=64-anneal_ent=false-bs=1024-lr=0.0003"
api = wandb.Api(timeout=300)
runs = api.runs(f"{entity}/{project}", {
'config.name': {"$regex": '220511-055353-.*'},
})
print("Starting...")
i = 0
while True:
try:
run = next(runs)
except requests.exceptions.HTTPError as e:
print(e)
continue
except requests.exceptions.ReadTimeout as e:
print(e)
continue
except StopIteration:
break
print(i, run.name)
rows = 0
for row in run.history(pandas=False):
clean_row = {k: v or 0.0 for k, v in row.items() if not isinstance(v, dict) and not isinstance(v, str)}
locustdb.log(table=run.name, metrics=clean_row)
rows += 1
print(f"Logged {rows} rows")
i += 1
print("done")
time.sleep(2)
print("done!")