def PreprocessKernel(name): img = DataHelper.ReadImage(name, gray=True) grids = SVCClassifier.SVCPreprocess(img) labels = np.array( BoardHelper.FENtoOneHot( DataHelper.GetCleanNameByPath(name))).argmax(axis=1) return grids, labels
def func_generator(train_file_names): for image_file_name in train_file_names: img = DataHelper.ReadImage(image_file_name) x = CNNClassifier.PreprocessImage(img) y = np.array( BoardHelper.FENtoOneHot( DataHelper.GetCleanNameByPath(image_file_name))) yield x, y
def TestAccuracy(self, test_file_names): num_files = len(test_file_names) predict_result = self.__model__.predict( CNNClassifier.func_generator(test_file_names)).argmax(axis=1) predict_result = predict_result.reshape(num_files, -1) predicted_fen_arr = np.array([ BoardHelper.LtoFEN(BoardHelper.LabelArrayToL(labels)) for labels in predict_result ]) test_fens = np.array([ DataHelper.GetCleanNameByPath(file_name) for file_name in test_file_names ]) final_accuracy = (predicted_fen_arr == test_fens).astype( np.float).mean() return final_accuracy
test_SVC = False SVC_load_model = True if test_ABC: abc = Classifiers.ABClassifier() train_names = DataHelper.GetFileNamesInDir(g_train_dir) if ABC_load_model: print("abc: loading model from " + abc_model_file) abc.LoadModel(abc_model_file) else: abc.Train(train_names) y_truth = BoardHelper.FENtoL(DataHelper.GetCleanNameByPath(a_random_file)) img = DataHelper.ReadImage(a_random_file, gray = True) pred = abc.Predict(img) print("truth: ", ''.join(y_truth)) print("pred : ", ''.join(pred)) # save model if not ABC_load_model: print("abc: saving model to " + abc_model_file) abc.SaveModel(abc_model_file) if test_SVC: svc = Classifiers.SVCClassifier() train_names = DataHelper.GetFileNamesInDir(g_train_dir)