예제 #1
0
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
예제 #2
0
 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
예제 #3
0
    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
예제 #4
0
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)