Ejemplo n.º 1
0
 def get_som_clf(self):
     dir_list = ['..', '..', 'logger', 'final']
     som_path = utils.join_list(dir_list + [Log.FINAL_SOM.value + ".pkl"])
     NN_path = utils.join_list(dir_list + [Log.FINAL_CLF.value + ".pkl"])
     som = joblib.load(som_path)
     clf = joblib.load(NN_path)
     return som, clf
Ejemplo n.º 2
0
def read_data(path):
    """returns path X,Y of data where X[i] is an image and Y[i] is its label"""
    data = {}
    val = {"no": -1, "undetermined": 0, "yes": 1}
    print("started reading data")
    start_time = time.time()
    labels = []
    for (dirpath, dirnames, filenames) in os.walk(path):
        labels.extend(dirnames)
        break
    label_val = assign_vals(labels)
    for (dirpath, dirnames, filenames) in os.walk(path):
        label = utils.get_dirname(dirpath)
        if label not in label_val:
            continue
        data[label] = filenames
    X = []
    Y = []
    for label in data:
        for img_name in data[label]:
            path_to_img = utils.join_list([path, label, img_name])
            X.append(cv2.imread(path_to_img, 0))
            Y.append(label_val[label])
    elapsed_time = time.time() - start_time
    minutes = elapsed_time / 60
    seconds = elapsed_time % 60
    print("finished reading data in %d min and %d seconds" %
          (minutes, seconds))
    X = np.array(X)
    Y = np.array(Y)
    return X, Y
    def visit(self, node, scope: Scope):
        self.visit(node.expr, scope)
        self.update_type(node.expr.inferenced_type)

        type_list = []
        for var in node.casevars:
            child = scope.create_child()
            self.visit(var, child)
            type_list.append(var.inferenced_type)

        node_type = join_list(type_list)
        node.inferenced_type = node_type
Ejemplo n.º 4
0
    def visit(self, node, scope: Scope):
        self.visit(node.expr, scope)

        var_types = []
        for var in node.casevars:
            child = scope.next_child()
            self.visit(var, child)
            var_types.append(var.inferenced_type)

        node_inferred = node.inferenced_type
        auto = join_list(var_types)
        if is_subset(auto, node_inferred):
            node.inferenced_type = self.compare_types(node_inferred, auto)
def read_data(path):
    """returns path X,Y of data where X[i] is an image and Y[i] is its label"""
    data = {}
    print("started reading data")
    start_time = time.time()
    labels = []
    for (dirpath, dirnames, filenames) in walk(path):
        labels.extend(dirnames)
        break
    label_val = assign_vals(labels)
    cnt_all = 0
    for (dirpath, dirnames, filenames) in walk(path):
        label = utils.get_dirname(dirpath)
        if label not in label_val: continue
        data[label] = filenames
        cnt_all += len(filenames)
    X = []
    Y = []
    cnt = lst = 0
    for label in data:
        for img_name in data[label]:
            path_to_img = utils.join_list([path, label, img_name])
            X.append(cv2.imread(path_to_img, 0))
            Y.append(label_val[label])
            cnt += 1
            p = int(cnt * 100.0 / cnt_all)
            if p == lst + 5:
                print('%d%% done' % p, cnt)
                lst = p

    elapsed_time = time.time() - start_time
    minutes = elapsed_time / 60
    seconds = elapsed_time % 60
    print("finished reading data in %d min and %d seconds" %
          (minutes, seconds))
    #X = np.array(X)
    Y = np.array(Y)
    return X, Y
Ejemplo n.º 6
0
          (cnt, minutes, seconds))
    return res_imgs, res_labels


def test(imgs, labels, path_to_trained_som, path_to_trained_network, som_m,
         som_n):
    surf = cv2.xfeatures2d.SURF_create(10000)
    print('reading som')
    som = joblib.load(path_to_trained_som)
    print('reading network')
    clf = joblib.load(path_to_trained_network)
    print("found %d images" % (len(imgs)))
    print('compressing images')
    imgs, labels = transform_data(imgs, labels, som, som_m, som_n)
    prediction = clf.predict(imgs)
    accuracy = accuracy_score(labels, prediction) * 100
    return accuracy


if __name__ == "__main__":
    # ToDo: change the logger child directory to reflect the right cached SOM
    dir_list = [
        '..', 'logger',
        'on Sun Jun 18 13-53-06 2017 working on goal with MLP and SOM is [20, 20] and [5, 5] hidden layer'
    ]
    som_path = utils.join_list(dir_list + [Log.SOM.value + ".pkl"])
    NN_path = utils.join_list(dir_list + [Log.CLF.value + ".pkl"])
    # ToDo: use the testing data path instead
    data_path = utils.join_parent("goal_test")
    imgs, labels = read_data(data_path)
    print(test(imgs, labels, som_path, NN_path, 20, 20))
Ejemplo n.º 7
0
def load_clfs():
    dir_list = ['..', '..', 'logger', 'final']
    clfs, fclfs = DT.read_clfs(utils.join_list(dir_list))
    return clfs, fclfs