示例#1
0
            kernel = Pyramid_Kernel(k=512, pyramid_levels=pyramid_levels)
            mySVM = SVM(kernel=kernel.pyramid_kernel)
        else:
            # hardcode, load best parameters found with cross validation
            with open(
                    "/imatge/mgorriz/work/master/models/session02/test1/best_params_svm.pkl",
                    'rb') as file:
                best_params_svm = pickle.load(file)

            mySVM = SVM(kernel=best_params_svm['kernel'],
                        C=best_params_svm['C'],
                        gamma=best_params_svm['gamma'])

        model = mySVM.load_model(args.model_path)

        test_data = InputData.get_test_data()

        if args.do_compute_features:

            #descriptors, descriptors_idx = sift_descriptors.extract_features_simple(data_dictionary=test_data)
            test_descriptors_path = "/imatge/mgorriz/work/master/models/session02/test2/test_descriptors.npy"
            descriptors, descriptors_idx = \
                sift_descriptors.extract_features_simple(data_dictionary=test_data,
                                                         load=True, path=test_descriptors_path)

            codebook = bow_descriptor.load(
                os.path.join(args.codebook_path, 'codebook.pkl'), 'codebook')

            test_visual_words = bow_descriptor.extract_features(
                descriptors, codebook, descriptors_idx)
            bow_descriptor.save(
示例#2
0
                                  display=True)

            # save model
            myKNN.save_model(model, args.model_path)

        else:
            print("Invalid train method")

        print('Training finished: done in ' + str(time.time() - start_time) +
              ' secs')

    elif args.do_test:

        start_time = time.time()

        test_data = InputData.method_data_dictionary(InputData.get_test_data(),
                                                     'test')

        model = myKNN.load_model(args.model_path)

        # test model
        predictions = myKNN.predict(test_data['filenames'],
                                    model,
                                    display=True)
        myEvaluation.accuracy(test_data['labels'], predictions, display=True)
        myEvaluation.confusion_matrix(test_data['labels'],
                                      predictions,
                                      display=True)

        print('Test finished: done in ' + str(time.time() - start_time) +
              ' secs')