Diff of /utils/logging.py [000000] .. [92cc18]

Switch to unified view

a b/utils/logging.py
1
import pandas as pd
2
import torch
3
4
5
def log(fname, columns, values):
6
    # TODO convert to numpy for lower space requirements
7
    try:
8
        df = pd.read_csv(fname)
9
    except FileNotFoundError:
10
        df = pd.DataFrame(columns=columns)
11
    df = df.append(dict(zip(columns, values)), ignore_index=True)
12
    df.to_csv(fname, index=False)
13
14
15
def log_iou(fname, epoch, ious: torch.Tensor):
16
    try:
17
        df = pd.read_csv(fname)
18
    except FileNotFoundError:
19
        df = pd.DataFrame(columns=["epoch", "iou"])
20
    serialized_ious = ious.flatten().numpy()
21
    for iou in serialized_ious:
22
        df = df.append(dict(zip(["epoch", "iou"], [epoch, iou])), ignore_index=True)
23
    df.to_csv(fname, index=False)
24
25
26
def log_full(epoch, id, config, result_dict, type):
27
    data = {**config, **result_dict}
28
29
    try:
30
        df = pd.read_csv(f"logs/{type}/{config['model']}/{id}.csv")
31
    except FileNotFoundError:
32
        print("File not found, creating new")
33
        df = pd.DataFrame(columns=data)
34
    data["epoch"] = epoch
35
36
    # data now contains all scores for every sample, so iterate over samples
37
    new_df = df.append(data, ignore_index=True)
38
    new_df.to_csv(f"logs/{type}/{config['model']}/{id}.csv", index=False)