예제 #1
0
def main():
    """

    main testing method

    :return:
    """

    vocab = text_utils.get_model_vocab()

    reduced_test_data = data_generator.gen_dataset(os.path.join("Data",
                                                                "Meeting Identifier",
                                                                "Reduced High Res Test Data"),
                                                   vocab=vocab,
                                                   shuffle=False,
                                                   input_dim=constants.meeting_dimensions_420p)

    test_data = data_generator.gen_dataset(os.path.join("Data",
                                                        "Meeting Identifier",
                                                        "High Res Test Data"),
                                           vocab=vocab,
                                           shuffle=False,
                                           input_dim=constants.meeting_dimensions_420p)

    model = load_model(constants.text_recognition)

    model.evaluate(reduced_test_data)
    model.evaluate(test_data)

    """length_accuracy(training_data)"""

    """print_learning_curves("Data/Meeting Identifier/Reduced High Res Training Data",
예제 #2
0
def main():
    """

    main method

    :return:
    """

    vocab = text_utils.get_model_vocab()

    read_img_analysis(
        os.path.join("Data", "Meeting Identifier",
                     "Reduced High Res Training Data"), vocab)
    """text = read_img(os.path.join("Data",
예제 #3
0
def main():
    """

    main testing method

    :return:
    """

    path = "Data/YOLO/Training Data"
    vocab = text_utils.get_model_vocab()

    dataset = gen_dataset(path, batch_size=1, vocab=vocab, shuffle=False)

    for x, y in dataset:
        print(y.shape)
        print(y)
        break
예제 #4
0
def main():
    """

    main testing method

    :return:
    """

    training_path = "Data/YOLO/Training Data"
    vocab = text_utils.get_model_vocab()

    dataset = data_generator.gen_dataset(
        training_path,
        vocab=vocab,
        batch_size=1,
        shuffle=False,
        image_dim=constants.meeting_dimensions_420p)

    model = train_network(dataset.take(1), vocab, reload=False)

    model.save(constants.letter_detection)
예제 #5
0
def main():
    """

    main testing method

    :return:
    """

    vocab = text_utils.get_model_vocab()

    dataset = data_generator.gen_dataset("Data/YOLO/Training Data",
                                         vocab,
                                         batch_size=100,
                                         verbose=False,
                                         shuffle=False,
                                         image_dim=constants.meeting_dimensions_420p)

    get_letters(dataset.take(1),
                vocab,
                load())

    """model = load()
예제 #6
0
def main():
    """

    main method

    :return:
    """

    vocab = text_utils.get_model_vocab()

    training_data = data_generator.gen_dataset(
        os.path.join("Data", "Meeting Identifier",
                     "Reduced High res Training Data"),
        input_dim=constants.meeting_dimensions_420p,
        # batch_size=None,
        vocab=vocab)

    test_data = data_generator.gen_dataset(
        os.path.join("Data", "Meeting Identifier", "High Res Test Data"),
        input_dim=constants.meeting_dimensions_420p,
        vocab=vocab)
    """model = initalizer.init_nn(vocab,
                               image_dimensions=constants.meeting_dimensions_420p)

    model.summary()

    fitter = ModelFitter(model)
    fitter.fit(training_data,
               epochs=300,
               validation_data=test_data)"""

    model = train_model(training_data,
                        test_data,
                        vocab,
                        resolution=constants.meeting_dimensions_420p)
    model.save(constants.text_recognition)
    """tuner = BayesianOptimization(lambda hp: initalizer.init_nn(vocab,
예제 #7
0
def print_learning_curves(training_path,
                          test_path,
                          run_name,
                          steps=10,
                          trials=5,
                          input_shape=constants.meeting_dimensions):
    """

    print the learning curves of a model

    :param training_path: path to the training data
    :param test_path: path to the test data
    :param run_name: name of the current treatment group
    :param steps: number of dataset steps to take
    :param trials: number of trials to take
    :param input_shape: shape of the input images
    :return: None
    """

    # initialize constants
    subset_sizes = data_generator.get_dataset_sizes(training_path)
    vocab = text_utils.get_model_vocab()

    # load the data
    training_data = [data_generator.gen_dataset_batchless(training_path,
                                                          i + 1,
                                                          vocab,
                                                          1,
                                                          subset_sizes[i],
                                                          input_shape)
                     for i in range(constants.name_length)]

    test_data = data_generator.gen_dataset(test_path,
                                           input_dim=input_shape,
                                           vocab=vocab)

    print("treatment", "Dataset Size", "training accuracy", "test accuracy", sep=", ")

    # take subsets from the dataset
    for i in range(steps):

        # increment i
        i += 1

        # take a random sample from each length of dataset
        dataset = take_dataset_sample(training_data, subset_sizes, float(i) / steps)

        for j in range(trials):

            # initialize the model
            model = initalizer.init_nn(vocab,
                                       image_dimensions=input_shape)

            # train a model on the dataset
            model.fit(dataset,
                      verbose=0,
                      epochs=300)

            training_acc = model.evaluate(dataset,
                                          verbose=0)
            test_acc = model.evaluate(test_data,
                                      verbose=0)

            print(run_name,
                  int(float(i) * sum(subset_sizes) / steps),
                  training_acc[1],
                  test_acc[1],
                  sep=", ")