Esempio n. 1
0
    def extract(self, log_file):
        lines = read_lines(log_file)
        epoch_lines = []
        train_lines = []
        valid_lines = []

        for l in lines:
            if l.startswith("Epoch"):
                epoch_lines.append(l)
            elif ' train ' in l:
                train_lines.append(l)
            elif ' valid ' in l:
                valid_lines.append(l)

        train_ends, train_losses, train_accs = zip(
            *map(parse_metric_line(p=self.patterns['train']), train_lines))
        valid_ends, valid_losses, valid_accs = zip(
            *map(parse_metric_line(p=self.patterns['valid']), valid_lines))

        train_losses, train_accs, valid_losses, valid_accs = [
            np.array(x)
            for x in [train_losses, train_accs, valid_losses, valid_accs]
        ]
        train_results = pd.DataFrame({
            "end": train_ends,
            "loss": train_losses,
            "acc": train_accs,
        })
        valid_results = pd.DataFrame({
            "end": valid_ends,
            "loss": valid_losses,
            "acc": valid_accs,
        })
        return train_results, valid_results
Esempio n. 2
0
def parse_log(fp):
    lines = read_lines(fp)
    train_start = lines[0][:8]
    train_lines = []
    valid_lines = []

    cur_epoch_lines = []
    for l in lines:
        if l.startswith("Epoch"):
            if len(cur_epoch_lines) == 1:
                train_lines.append(cur_epoch_lines[0])
                valid_lines.append(None)
            elif len(cur_epoch_lines) == 2:
                train_lines.append(cur_epoch_lines[0])
                valid_lines.append(cur_epoch_lines[1])
            cur_epoch_lines = []
        elif ' train ' in l or 'valid' in l:
            cur_epoch_lines.append(l)
    if len(cur_epoch_lines) == 1:
        train_lines.append(cur_epoch_lines[0])
        valid_lines.append(None)
    elif len(cur_epoch_lines) == 2:
        train_lines.append(cur_epoch_lines[0])
        valid_lines.append(cur_epoch_lines[1])

    train_metrics = parse_metric_lines(train_lines)
    valid_metrics = parse_metric_lines(valid_lines)

    train_ends, valid_ends = train_metrics['time'], valid_metrics['time']
    for i in range(len(train_ends)):
        if valid_ends[i] is None:
            valid_ends[i] = train_ends[i]

    return train_start, train_metrics, valid_metrics
Esempio n. 3
0
def parse_log(fp):
    lines = read_lines(fp)
    train_start = lines[0][:8]
    epoch_lines = []
    train_lines = []
    valid_lines = []

    for l in lines:
        if l.startswith("Epoch"):
            epoch_lines.append(l)
        elif ' train ' in l:
            train_lines.append(l)
        elif ' valid ' in l:
            valid_lines.append(l)

    total_epochs = int(epoch_lines[0].split('/')[1])
    train_p = re.compile(f"""({dt_p}) train - loss: ({m_p}), acc: ({m_p})""")
    valid_p = re.compile(
        f"""({dt_p}) valid - loss: ({m_p}), acc: ({m_p}), acc5: ({m_p})""")
    train_ends, train_losses, train_accs = zip(
        *map(parse_metric_line(p=train_p), train_lines))
    valid_ends, valid_losses, valid_accs, valid_acc5s = zip(
        *map(parse_metric_line(p=valid_p), valid_lines))

    train_losses, valid_accs, valid_acc5s = [
        np.array(x) for x in [train_losses, valid_accs, valid_acc5s]
    ]
    return total_epochs, train_start, train_losses, valid_ends, valid_accs, valid_acc5s
Esempio n. 4
0
def parse_log(fp):
    lines = read_lines(fp)
    train_start = lines[0][:8]
    train_lines = []
    valid_lines = []

    for l in lines:
        if l.startswith("Epoch"):
            continue
        elif ' train ' in l:
            train_lines.append(l)
        elif ' valid ' in l:
            valid_lines.append(l)

    train_metrics = parse_metric_lines(train_lines)
    valid_metrics = parse_metric_lines(valid_lines)

    return train_start, train_metrics, valid_metrics
Esempio n. 5
0
def extract(fp):
    lines = read_lines(fp)
    epoch_lines = []
    train_lines = []
    valid_lines = []

    for l in lines:
        if 'Epoch' in l:
            epoch_lines.append(l)
        elif 'train' in l:
            train_lines.append(l)
        elif 'valid' in l:
            valid_lines.append(l)

    lrs = lmap(get_lr, epoch_lines)

    train_losses, train_accs = zip(*map(extract_train, train_lines))
    valid_losses, valid_accs = zip(*map(extract_valid, valid_lines))

    lrs, train_losses, train_accs, valid_losses, valid_accs = [
        np.array(x)
        for x in [lrs, train_losses, train_accs, valid_losses, valid_accs]
    ]
    return lrs, train_losses, train_accs, valid_losses, valid_accs