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
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
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
(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))
def load_clfs(): dir_list = ['..', '..', 'logger', 'final'] clfs, fclfs = DT.read_clfs(utils.join_list(dir_list)) return clfs, fclfs