Skip to content
Snippets Groups Projects
dtree_synth_agbot.py 1.28 KiB

from csv import Dialect
import itertools
import json
#import matplotlib.pyplot as plt
import pathlib
import pickle
import traceback
from typing import Dict, Hashable, List, Tuple

import numpy as np
import z3
from dtree_learner import DTreeLearner as Learner
from gem_stanley_teacher import DTreeGEMStanleyGurobiTeacher as Teacher


def load_examples_from_npz(file_name: str, spec) -> Tuple[List[Tuple[float, ...]], List[Tuple[float, ...]]]:
    print("Loading examples")
    npz_data = np.load(file_name,allow_pickle=True)
    exit(0)


    with open(file_name, "rb") as pickle_file_io:
        pkl_data = pickle.load(pickle_file_io)

    truth_samples_seq = pkl_data["truth_samples"]

    # Convert from sampled states and percepts to positive and negative examples for learning
    pos_exs, neg_exs, num_excl_exs = [], [], 0
    for _, ss in truth_samples_seq:
        for s in ss:
            if np.any(np.isnan(s)):
                num_excl_exs += 1
            elif spec(s):
                pos_exs.append(s)
            else:
                neg_exs.append(s)
    print("# Excluded NaN examples:", num_excl_exs)
    return pos_exs, neg_exs


if __name__ == "__main__":
    load_examples_from_npz("data/800_truths-uniform_partition_4x20-1.2m-pi_12-one_straight_road-2021-10-27-08-49-17.bag.pickle", None)