Exemplo n.º 1
0
def test_fit_csv_file_1(_):
    constant.MAX_ITER_NUM = 1
    constant.MAX_MODEL_NUM = 1
    constant.EPOCHS_EACH = 1
    constant.N_NEIGHBORS = 1
    path = 'tests/resources'
    clf = ImageClassifier(verbose=False, path=os.path.join(path, "temp"), resume=False)
    clf.fit(csv_file_path=os.path.join(path, "images_test/images_name.csv"),
            images_path=os.path.join(path, "images_test/Color_images"))
    img_file_name, y_train = read_csv_file(csv_file_path=os.path.join(path, "images_test/images_name.csv"))
    x_test = read_images(img_file_name, images_dir_path=os.path.join(path, "images_test/Color_images"))
    results = clf.predict(x_test)
    assert len(clf.load_searcher().history) == 1
    assert len(results) == 5
    clean_dir(os.path.join(path, "temp"))

    clf = ImageClassifier(verbose=False, path=os.path.join(path, "temp"), resume=True)
    clf.fit(csv_file_path=os.path.join(path, "images_test/images_name.csv"),
            images_path=os.path.join(path, "images_test/Black_white_images"))
    img_file_name, y_train = read_csv_file(csv_file_path=os.path.join(path, "images_test/images_name.csv"))
    x_test = read_images(img_file_name, images_dir_path=os.path.join(path, "images_test/Black_white_images"))
    results = clf.predict(x_test)
    assert len(clf.load_searcher().history) == 1
    assert len(results) == 5
    clean_dir(os.path.join(path, "temp"))
def test_fit_predict_evalute_regression():
    clean_dir(TEST_TEMP_DIR)
    clf = TabularRegressor(path=TEST_TEMP_DIR)
    nsample = 10000
    [ntime, nnum, ncat, nmvc] = [3, 15, 3, 3]
    datainfo = {'loaded_feat_types': [ntime, nnum, ncat, nmvc]}
    x_num = np.random.random([nsample, nnum])
    x_time = np.random.random([nsample, ntime])
    x_cat = np.random.randint(0, 200, [nsample, ncat])
    x_mvc = np.random.randint(0, 10, [nsample, nmvc])
    train_x = np.concatenate([x_num, x_time, x_cat, x_mvc], axis=1)
    train_y = train_x[:, 5]
    clf.fit(train_x, train_y, datainfo=datainfo)
    results = clf.predict(train_x)
    assert len(results) == len(train_x)
    score = clf.evaluate(train_x, train_y)
    assert score >= 0.0
    # test different model loading in predict
    clf.clf = None
    results = clf.predict(train_x)
    assert len(results) == len(train_x)
    clf.clf = None
    clf.save_filename = None
    results = clf.predict(train_x)
    assert len(results) == len(train_x)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 3
0
def test_fit_evalute_predict_binary_classification():
    clean_dir(TEST_TEMP_DIR)
    clf = TabularClassifier(path=TEST_TEMP_DIR)
    nsample = 59
    feat_exist_ind = [0, 5]
    for ntime in feat_exist_ind:
        for nnum in feat_exist_ind:
            for ncat in feat_exist_ind:
                    datainfo = np.array(['TIME'] * ntime + ['NUM'] * nnum + ['CAT'] * ncat)
                    num_feat = ntime + nnum + ncat
                    x_num = np.random.random([nsample, nnum])
                    x_time = np.random.random([nsample, ntime])
                    x_cat = np.random.randint(0, 40, [nsample, ncat])

                    train_x = np.concatenate([x_num, x_time, x_cat], axis=1)
                    train_y = np.random.randint(0, 2, nsample)
                    print(datainfo)
                    if num_feat == 0:
                        with pytest.raises(ValueError):
                            clf.fit(train_x, train_y, data_info=datainfo)
                    else:
                        clf.fit(train_x, train_y, data_info=datainfo)
                        results = clf.predict(train_x)
                        assert all(map(lambda result: result in train_y, results))
    score = clf.evaluate(train_x, train_y)
    assert score >= 0.0
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 4
0
def test_fit_evalute_predict_binary_classification():
    train_x = None
    train_y = None
    clean_dir(TEST_TEMP_DIR)
    clf = TabularClassifier(path=TEST_TEMP_DIR)
    nsample = 59
    feat_exist_ind = [0, 5]
    for ntime in feat_exist_ind:
        for nnum in feat_exist_ind:
            for ncat in feat_exist_ind:
                datainfo = np.array(['TIME'] * ntime + ['NUM'] * nnum +
                                    ['CAT'] * ncat)
                num_feat = ntime + nnum + ncat
                x_num = np.random.random([nsample, nnum])
                x_time = np.random.random([nsample, ntime])
                x_cat = np.random.randint(0, 40, [nsample, ncat])

                train_x = np.concatenate([x_num, x_time, x_cat], axis=1)
                train_y = np.random.randint(0, 2, nsample)
                print(datainfo)
                if num_feat == 0:
                    with pytest.raises(ValueError):
                        clf.fit(train_x, train_y, data_info=datainfo)
                else:
                    clf.fit(train_x, train_y, data_info=datainfo)
                    results = clf.predict(train_x)
                    assert all(map(lambda result: result in train_y, results))
    score = clf.evaluate(train_x, train_y)
    assert score >= 0.0
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 5
0
def test_timeout_resume(_, _1):
    Constant.MAX_ITER_NUM = 1
    # make it impossible to complete within 10sec
    Constant.MAX_MODEL_NUM = 1000
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    test_x = np.random.rand(100, 25, 25, 1)
    path = 'tests/resources/temp'
    clean_dir(path)
    clf = TextClassifier(path=path, verbose=False, resume=False)
    clf.n_epochs = 100
    clf.fit(train_x, train_y, time_limit=2)
    history_len = len(clf.load_searcher().history)
    assert history_len != 0
    results = clf.predict(test_x)
    assert len(results) == 100

    clf = TextClassifier(path=path, verbose=False, resume=True)
    assert len(clf.load_searcher().history) == history_len
    Constant.MAX_MODEL_NUM = history_len + 1
    clf.fit(train_x, train_y)
    assert len(clf.load_searcher().history) == history_len + 1
    results = clf.predict(test_x)
    assert len(results) == 100
    clean_dir(path)
Exemplo n.º 6
0
def test_temp_folder_generator(_):
    path = 'tests/resources/temp'
    clean_dir(path)
    path = temp_folder_generator()
    assert path == "tests/resources/temp/autokeras"
    path = 'tests/resources/temp'
    clean_dir(path)
def test_object_detection():
    detector = ObjectDetector()
    detector.load()
    img_path = 'tests/resources/images_test/od.JPG'
    result = detector.predict(img_path, TEST_TEMP_DIR)
    assert isinstance(result, list)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 8
0
def test_temp_folder_generator(_):
    path = 'tests/resources/temp'
    clean_dir(path)
    path = temp_folder_generator()
    assert path == "tests/resources/temp/autokeras"
    path = 'tests/resources/temp'
    clean_dir(path)
def test_save_continue(_, _1):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 1
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    test_x = np.random.rand(100, 25, 25, 1)
    clean_dir(TEST_TEMP_DIR)
    clf = ImageClassifier(path=TEST_TEMP_DIR, verbose=False, resume=False)
    clf.n_epochs = 100
    clf.fit(train_x, train_y)
    assert len(clf.cnn.searcher.history) == 1

    Constant.MAX_MODEL_NUM = 2
    clf = ImageClassifier(verbose=False, path=TEST_TEMP_DIR, resume=True)
    clf.fit(train_x, train_y)
    results = clf.predict(test_x)
    assert len(results) == 100
    assert len(clf.cnn.searcher.history) == 2

    Constant.MAX_MODEL_NUM = 1
    clf = ImageClassifier(verbose=False, path=TEST_TEMP_DIR, resume=False)
    clf.fit(train_x, train_y)
    results = clf.predict(test_x)
    assert len(results) == 100
    assert len(clf.cnn.searcher.history) == 1
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 10
0
def test_save_continue(_):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 1
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    test_x = np.random.rand(100, 25, 25, 1)
    path = 'tests/resources/temp'
    clean_dir(path)
    clf = ImageClassifier(path=path, verbose=False, resume=False)
    clf.n_epochs = 100
    clf.fit(train_x, train_y)
    assert len(clf.load_searcher().history) == 1

    Constant.MAX_MODEL_NUM = 2
    clf = ImageClassifier(verbose=False, path=path, resume=True)
    clf.fit(train_x, train_y)
    results = clf.predict(test_x)
    assert len(results) == 100
    assert len(clf.load_searcher().history) == 2

    Constant.MAX_MODEL_NUM = 1
    clf = ImageClassifier(verbose=False, path=path, resume=False)
    clf.fit(train_x, train_y)
    results = clf.predict(test_x)
    assert len(results) == 100
    assert len(clf.load_searcher().history) == 1
    clean_dir(path)
Exemplo n.º 11
0
def test_export_keras_model(_):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 1
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    test_x = np.random.rand(100, 25, 25, 1)
    path = 'tests/resources/temp'
    clean_dir(path)
    clf = ImageClassifier(path=path, verbose=False, resume=False)
    clf.n_epochs = 100
    clf.fit(train_x, train_y)
    score = clf.evaluate(train_x, train_y)
    assert score <= 1.0

    model_file_name = os.path.join(path, 'test_keras_model.h5')
    clf.export_keras_model(model_file_name)
    from keras.models import load_model
    model = load_model(model_file_name)
    results = model.predict(test_x)
    assert len(results) == len(test_x)
    del model, results, model_file_name

    model_file_name = os.path.join(path, 'test_autokeras_model.pkl')
    clf.export_autokeras_model(model_file_name)
    from autokeras.utils import pickle_from_file
    model = pickle_from_file(model_file_name)
    results = model.predict(test_x)
    assert len(results) == len(test_x)
    score = model.evaluate(train_x, train_y)
    assert score <= 1.0
    clean_dir(path)
Exemplo n.º 12
0
def test_save_continue(_, _1, _2):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 1
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    train_x = np.random.rand(100, 25, 25)
    train_y = np.random.randint(0, 5, 100)
    test_x = np.random.rand(100, 25, 25)
    clean_dir(TEST_TEMP_DIR)
    clf = TextClassifier(path=TEST_TEMP_DIR, verbose=False, resume=False)
    clf.n_epochs = 100
    clf.fit(train_x, train_y, time_limit=5)
    assert len(clf.cnn.searcher.history) == 1

    Constant.MAX_MODEL_NUM = 2
    clf = TextClassifier(verbose=False, path=TEST_TEMP_DIR, resume=True)
    clf.fit(train_x, train_y)
    results = clf.predict(test_x)
    assert len(results) == 100
    assert len(clf.cnn.searcher.history) == 2

    Constant.MAX_MODEL_NUM = 1
    clf = TextClassifier(verbose=False, path=TEST_TEMP_DIR, resume=False)
    clf.fit(train_x, train_y)
    results = clf.predict(test_x)
    assert len(results) == 100
    assert len(clf.cnn.searcher.history) == 1
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 13
0
def test_timout():
    path = 'tests/resources/temp'
    clean_dir(path)
    clf = ImageClassifier(path=path, verbose=False)
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y, time_limit=1)
    clean_dir(path)
Exemplo n.º 14
0
def test_greedy_searcher_sp(_, _1, _2, _3):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    searcher = GreedySearcher(3, (28, 28, 3), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                        loss=classification_loss, generators=[CnnGenerator, CnnGenerator])
    for _ in range(2):
        searcher.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(searcher.history) == 2
Exemplo n.º 15
0
def test_greedy_searcher_mlp(_, _1, _2):
    train_data, test_data = get_classification_data_loaders_mlp()
    clean_dir(TEST_TEMP_DIR)
    generator = GreedySearcher(3, (28,), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                         loss=classification_loss, generators=[MlpGenerator, MlpGenerator])
    for _ in range(2):
        generator.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(generator.history) == 2
Exemplo n.º 16
0
def test_greedy_searcher_mlp(_, _1, _2):
    train_data, test_data = get_classification_data_loaders_mlp()
    clean_dir(TEST_TEMP_DIR)
    generator = GreedySearcher(3, (28,), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                         loss=classification_loss, generators=[MlpGenerator, MlpGenerator])
    for _ in range(2):
        generator.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(generator.history) == 2
Exemplo n.º 17
0
def test_greedy_searcher_sp(_, _1, _2, _3):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    searcher = GreedySearcher(3, (28, 28, 3), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                        loss=classification_loss, generators=[CnnGenerator, CnnGenerator])
    for _ in range(2):
        searcher.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(searcher.history) == 2
Exemplo n.º 18
0
def test_bayesian_searcher(_, _1):
    train_data, test_data = get_processed_data()
    clean_dir(default_test_path)
    generator = BayesianSearcher(3, (28, 28, 3), verbose=False, path=default_test_path)
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    for _ in range(2):
        generator.search(train_data, test_data)
    clean_dir(default_test_path)
    assert len(generator.history) == 2
Exemplo n.º 19
0
def test_model_trainer_classification():
    model = CnnGenerator(3, (28, 28, 3)).generate().produce_model()
    train_data, test_data = get_classification_data_loaders()
    ModelTrainer(model,
                 train_data=train_data,
                 test_data=test_data,
                 metric=Accuracy,
                 loss_function=classification_loss,
                 verbose=True,
                 path=TEST_TEMP_DIR).train_model(max_iter_num=3)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 20
0
def test_cross_validate(_):
    constant.MAX_MODEL_NUM = 2
    path = 'tests/resources/temp'
    clean_dir(path)
    clf = ImageClassifier(path=path, verbose=False, searcher_args={'trainer_args': {'max_iter_num': 0}})
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.cross_validate(train_x, train_y, 2, trainer_args={'max_iter_num': 0})
    clean_dir(path)
    assert len(results) == 2
Exemplo n.º 21
0
def test_out_of_memory(_, _1):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    searcher = Searcher(3, (28, 28, 3), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                        loss=classification_loss)
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    for _ in range(4):
        searcher.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(searcher.history) == 0
Exemplo n.º 22
0
def test_model_trainer_regression():
    model = CnnGenerator(1, (28, 28, 3)).generate().produce_model()
    train_data, test_data = get_regression_data_loaders()
    ModelTrainer(model,
                 train_data=train_data,
                 test_data=test_data,
                 metric=MSE,
                 loss_function=regression_loss,
                 verbose=False,
                 path=TEST_TEMP_DIR).train_model(max_iter_num=3)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 23
0
def test_bayesian_searcher(_, _1):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(default_test_path)
    generator = Searcher(3, (28, 28, 3), verbose=False, path=default_test_path, metric=Accuracy,
                         loss=classification_loss)
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    for _ in range(2):
        generator.search(train_data, test_data)
    clean_dir(default_test_path)
    assert len(generator.history) == 2
Exemplo n.º 24
0
def test_bayesian_searcher_mlp(_, _1, _2):
    train_data, test_data = get_classification_data_loaders_mlp()
    clean_dir(TEST_TEMP_DIR)
    generator = Searcher(3, (28,), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                         loss=classification_loss, generators=[MlpGenerator, MlpGenerator])
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    for _ in range(2):
        generator.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(generator.history) == 2
Exemplo n.º 25
0
def test_bayesian_searcher_mlp(_, _1, _2):
    train_data, test_data = get_classification_data_loaders_mlp()
    clean_dir(TEST_TEMP_DIR)
    generator = BayesianSearcher(3, (28,), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                         loss=classification_loss, generators=[MlpGenerator, MlpGenerator])
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    for _ in range(2):
        generator.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(generator.history) == 2
Exemplo n.º 26
0
def test_bayesian_searcher_sp(_, _1, _2, _3):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    searcher = BayesianSearcher(3, (28, 28, 3), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                        loss=classification_loss, generators=[CnnGenerator, CnnGenerator])
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    for _ in range(2):
        searcher.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(searcher.history) == 2
Exemplo n.º 27
0
def test_grid_searcher(_, _1, _2):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    searcher = GridSearcher(3, (28, 28, 3), verbose=True, path=TEST_TEMP_DIR, metric=Accuracy,
                        loss=classification_loss, generators=[CnnGenerator, CnnGenerator])
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    print(len(searcher.get_search_dimensions()))
    for _ in range(len(searcher.get_search_dimensions())):
        searcher.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(searcher.history) == len(searcher.search_dimensions)
def test_face_detector():
    img_file, out_file = 'tests/resources/images_test/face_detector.jpg', os.path.join(
        TEST_TEMP_DIR, 'output.jpg')
    if os.path.exists(out_file):
        os.remove(out_file)
    face_detection = FaceDetector()
    bboxs1, landmarks1 = face_detection.predict(img_file, out_file)
    assert os.path.exists(out_file)
    bboxs2, landmarks2 = face_detection.predict(img_file)
    assert bboxs1.shape == bboxs2.shape == (
        11, 5) and landmarks1.shape == landmarks2.shape == (11, 10)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 29
0
def test_exception_handling(_, _2):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    Constant.N_NEIGHBOURS = 2
    Constant.T_MIN = 0.8
    Constant.BETA = 1
    generator = BayesianSearcher(3, (28, 28, 3), verbose=True, path=TEST_TEMP_DIR, metric=Accuracy,
                                 loss=classification_loss, generators=[CnnGenerator, ResNetGenerator])
    for _ in range(3):
        generator.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(generator.history) == 0
def test_timeout(_):
    # Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1000
    Constant.T_MIN = 0.0001
    Constant.DATA_AUGMENTATION = False
    clean_dir(TEST_TEMP_DIR)
    clf = ImageClassifier(path=TEST_TEMP_DIR, verbose=False)
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    with pytest.raises(TimeoutError):
        clf.fit(train_x, train_y, time_limit=0)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 31
0
def test_timout(_, _1):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1
    Constant.DATA_AUGMENTATION = False
    path = 'tests/resources/temp'
    clean_dir(path)
    clf = ImageClassifier(path=path, verbose=False)
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y, time_limit=1)
    clean_dir(path)
Exemplo n.º 32
0
def test_fit_predict(_, _1):
    constant.MAX_ITER_NUM = 2
    constant.MAX_MODEL_NUM = 2
    constant.EPOCHS_EACH = 1
    path = 'tests/resources/temp'
    clf = ImageClassifier(path=path, verbose=False)
    train_x = np.array([[[1], [2]], [[3], [4]]])
    train_y = np.array(['a', 'b'])
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert all(map(lambda result: result in np.array(['a', 'b']), results))
    clean_dir(path)
Exemplo n.º 33
0
def test_grid_searcher(_, _1, _2):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    searcher = GridSearcher(3, (28, 28, 3), verbose=True, path=TEST_TEMP_DIR, metric=Accuracy,
                        loss=classification_loss, generators=[CnnGenerator, CnnGenerator])
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    print(len(searcher.get_search_dimensions()))
    for _ in range(len(searcher.get_search_dimensions())):
        searcher.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(searcher.history) == len(searcher.search_dimensions)
Exemplo n.º 34
0
def test_fit_predict_save(_, _1):
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    for Model in [PredefinedResnet, PredefinedDensenet]:
        clf = Model(verbose=True)
        clf.fit(train_x, train_y)
        results = clf.predict(train_x)
        assert all(map(lambda result: result in train_y, results))
        score = clf.evaluate(train_x, train_y)
        assert score <= 1.0

    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 35
0
def test_timeout(_, _1):
    # Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1000
    Constant.T_MIN = 0.0001
    Constant.DATA_AUGMENTATION = False
    clean_dir(TEST_TEMP_DIR)
    clf = TextClassifier(path=TEST_TEMP_DIR, verbose=False)
    train_x = np.random.rand(100, 25, 25)
    train_y = np.random.randint(0, 5, 100)
    with pytest.raises(TimeoutError):
        clf.fit(train_x, train_y, time_limit=0)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 36
0
def test_extract_data_info():
    clean_dir(TEST_TEMP_DIR)
    tp = TabularPreprocessor()
    nsample = 10000
    half_sample = 5000
    [tp.n_num, tp.n_cat] = [5, 1]
    x_num = np.random.random([nsample, tp.n_num])
    x_cat = np.array(['a'] * half_sample + ['b'] * half_sample).reshape([nsample, 1])
    raw_x = np.concatenate([x_num, x_cat], axis=1)
    data_info = tp.extract_data_info(raw_x)
    ground_truth = np.array(['NUM'] * tp.n_num + ['CAT'] * tp.n_cat)
    assert (data_info == ground_truth).all()
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 37
0
def test_timeout(_):
    # Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1000
    Constant.T_MIN = 0.0001
    Constant.DATA_AUGMENTATION = False
    path = 'tests/resources/temp'
    clean_dir(path)
    clf = TextClassifier(path=path, verbose=False)
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    with pytest.raises(TimeoutError):
        clf.fit(train_x, train_y, time_limit=0)
    clean_dir(path)
def test_fit_predict(_, _1, _2):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    clean_dir(TEST_TEMP_DIR)
    clf = TextClassifier(path=TEST_TEMP_DIR, verbose=True)
    train_x = np.random.rand(100, 25, 25)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert all(map(lambda result: result in train_y, results))
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 39
0
def test_fit_predict2(_, _1):
    path = 'tests/resources/temp'
    clf = ImageClassifier(path=path, verbose=False)
    constant.MAX_ITER_NUM = 1
    constant.MAX_MODEL_NUM = 1
    constant.EPOCHS_EACH = 1
    train_x = np.random.rand(100, 25, 1)
    test_x = np.random.rand(100, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(test_x)
    assert len(results) == 100
    clean_dir(path)
Exemplo n.º 40
0
def test_out_of_memory(_, _2):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    Constant.N_NEIGHBOURS = 2
    Constant.SEARCH_MAX_ITER = 0
    Constant.T_MIN = 0.8
    Constant.BETA = 1
    generator = BayesianSearcher(3, (28, 28, 3), verbose=True, path=TEST_TEMP_DIR, metric=Accuracy,
                         loss=classification_loss, generators=[CnnGenerator, ResNetGenerator])
    for _ in range(3):
        generator.search(train_data, test_data)
    clean_dir(TEST_TEMP_DIR)
    assert len(generator.history) == 0
Exemplo n.º 41
0
def test_model_trainer_timout():
    model = CnnGenerator(3, (28, 28, 3)).generate().produce_model()
    timeout = 1
    train_data, test_data = get_classification_data_loaders()
    with pytest.raises(TimeoutError):
        ModelTrainer(model,
                     train_data=train_data,
                     test_data=test_data,
                     metric=Accuracy,
                     loss_function=classification_loss,
                     verbose=True,
                     path=TEST_TEMP_DIR).train_model(max_iter_num=300, timeout=timeout)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 42
0
def test_evaluate(_, _1, _2):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 1
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    train_x = np.random.rand(100, 25, 25)
    train_y = np.random.randint(0, 5, 100)
    clean_dir(TEST_TEMP_DIR)
    clf = TextClassifier(path=TEST_TEMP_DIR, verbose=False, resume=False)
    clf.n_epochs = 100
    clf.fit(train_x, train_y)
    score = clf.evaluate(train_x, train_y)
    clean_dir(TEST_TEMP_DIR)
    assert score <= 1.0
Exemplo n.º 43
0
def test_fit_predict_regression(_, _1):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    Constant.DATA_AUGMENTATION = False
    clean_dir(TEST_TEMP_DIR)
    clf = ImageRegressor(path=TEST_TEMP_DIR, verbose=False)
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert len(results) == len(train_x)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 44
0
def test_fit_generate(_):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    Constant.DATA_AUGMENTATION = False
    image_path, size = TEST_TEMP_DIR, 32
    clean_dir(image_path)
    dcgan = DCGAN(gen_training_result=(image_path, size))
    train_x = np.random.rand(100, 32, 32, 3)
    dcgan.fit(train_x)
    clean_dir(image_path)
    noise = np.random.randn(32, 100, 1, 1).astype('float32')
    dcgan.generate(noise)
Exemplo n.º 45
0
def test_fit_csv_file(_, _1, _2):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 1
    Constant.SEARCH_MAX_ITER = 1
    path = 'tests/resources'
    clf = ImageClassifier(verbose=False, path=os.path.join(path, "temp"), resume=False)
    x_train, y_train = load_image_dataset(csv_file_path=os.path.join(path, "images_test/images_name.csv"),
                                          images_path=os.path.join(path, "images_test/Color_images"))
    clf.fit(x_train, y_train)
    x_test, y_test = load_image_dataset(csv_file_path=os.path.join(path, "images_test/images_name.csv"),
                                        images_path=os.path.join(path, "images_test/Color_images"))
    results = clf.predict(x_test)
    assert len(clf.cnn.searcher.history) == 1
    assert len(results) == 5
    clean_dir(os.path.join(path, "temp"))
Exemplo n.º 46
0
def test_fit_predict_save(_):
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    for Model in [PredefinedResnet, PredefinedDensenet]:
        clf = Model(verbose=True)
        clf.fit(train_x, train_y)
        results = clf.predict(train_x)
        assert all(map(lambda result: result in train_y, results))
        score = clf.evaluate(train_x, train_y)
        assert score <= 1.0
        model_path = os.path.join(TEST_TEMP_DIR, 'kerasmodel')
        clf.save(model_path)
        assert os.path.isfile(model_path)

    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 47
0
def test_max_acq(_, _1):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(default_test_path)
    Constant.N_NEIGHBOURS = 2
    Constant.SEARCH_MAX_ITER = 0
    Constant.T_MIN = 0.8
    Constant.BETA = 1
    generator = Searcher(3, (28, 28, 3), verbose=False, path=default_test_path, metric=Accuracy,
                         loss=classification_loss)
    for _ in range(3):
        generator.search(train_data, test_data)
    for index1, descriptor1 in enumerate(generator.descriptors):
        for descriptor2 in generator.descriptors[index1 + 1:]:
            assert edit_distance(descriptor1, descriptor2, 1) != 0

    clean_dir(default_test_path)
Exemplo n.º 48
0
def test_batch_dataset(_, _1):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    data_path = 'tests/resources'
    clean_dir(TEST_TEMP_DIR)
    csv_file_path = os.path.join(data_path, "images_test/images_name.csv")
    image_path = os.path.join(data_path, "images_test/Color_images")
    train_dataset = BatchDataset(csv_file_path, image_path, has_target=True)
    test_dataset = BatchDataset(csv_file_path, image_path, has_target=True)
    train_dataloader = DataLoader(train_dataset, batch_size=1, shuffle=False)
    test_dataloader = DataLoader(test_dataset, batch_size=1, shuffle=False)
    cnn = CnnModule(classification_loss, Accuracy, {}, TEST_TEMP_DIR, True)
    cnn.fit(2, (4, 250, 250, 3), train_dataloader, test_dataloader, 12 * 60 * 60)
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 49
0
def test_max_acq(_, _2):
    train_data, test_data = get_classification_data_loaders()
    clean_dir(TEST_TEMP_DIR)
    Constant.N_NEIGHBOURS = 2
    Constant.SEARCH_MAX_ITER = 0
    Constant.T_MIN = 0.8
    Constant.BETA = 1
    generator = BayesianSearcher(3, (28, 28, 3), verbose=False, path=TEST_TEMP_DIR, metric=Accuracy,
                         loss=classification_loss, generators=[CnnGenerator, ResNetGenerator])
    for _ in range(3):
        generator.search(train_data, test_data)
    for index1, descriptor1 in enumerate(generator.descriptors):
        for descriptor2 in generator.descriptors[index1 + 1:]:
            assert edit_distance(descriptor1, descriptor2) != 0.0

    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 50
0
def test_fit_predict_evalute_regression():
    clean_dir(TEST_TEMP_DIR)
    clf = TabularRegressor(path=TEST_TEMP_DIR)
    nsample = 10000
    [ntime, nnum, ncat] = [3, 15, 3]
    datainfo = np.array(['TIME'] * ntime + ['NUM'] * nnum + ['CAT'] * ncat)
    x_num = np.random.random([nsample, nnum])
    x_time = np.random.random([nsample, ntime])
    x_cat = np.random.randint(0, 200, [nsample, ncat])
    train_x = np.concatenate([x_num, x_time, x_cat], axis=1)
    train_y = train_x[:, 5]
    clf.fit(train_x, train_y, data_info=datainfo)
    results = clf.predict(train_x)
    assert len(results) == len(train_x)
    score = clf.evaluate(train_x, train_y)
    assert score >= 0.0
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 51
0
def test_fit_predict_regression(_, _1, _2):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    Constant.DATA_AUGMENTATION = False
    path = TEST_TEMP_DIR
    print(os.getcwd())
    # for f in os.listdir(path):
    #     print(f)
    clean_dir(path)
    clf = TextRegressor(path=path, verbose=False)
    train_x = np.random.rand(100, 25, 25)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert len(results) == len(train_x)
    clean_dir(path)
Exemplo n.º 52
0
def test_final_fit(_, _1, _2, _3):
    Constant.LIMIT_MEMORY = True
    clean_dir(TEST_TEMP_DIR)
    clf = TextClassifier(path=TEST_TEMP_DIR, verbose=False)
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 1
    Constant.SEARCH_MAX_ITER = 1
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    train_x = np.random.rand(100, 25, 25)
    train_y = np.random.randint(0, 5, 100)
    test_x = np.random.rand(100, 25, 25)
    test_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    clf.final_fit(train_x, train_y, test_x, test_y)
    results = clf.predict(test_x)
    assert len(results) == 100
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 53
0
def test_export_json(_, _1):
    train_data, test_data = get_classification_data_loaders()

    clean_dir(default_test_path)
    generator = Searcher(3, (28, 28, 3), verbose=False, path=default_test_path, metric=Accuracy,
                         loss=classification_loss)
    Constant.N_NEIGHBOURS = 1
    Constant.T_MIN = 0.8
    for _ in range(3):
        generator.search(train_data, test_data)
    file_path = os.path.join(default_test_path, 'test.json')
    generator.export_json(file_path)
    import json
    data = json.load(open(file_path, 'r'))
    assert len(data['networks']) == 3
    assert len(data['tree']['children']) == 2
    clean_dir(default_test_path)
    assert len(generator.history) == 3
Exemplo n.º 54
0
def test_fit_evalute_predict_multiclass_classification():
    clean_dir(TEST_TEMP_DIR)
    clf = TabularClassifier(path=TEST_TEMP_DIR)
    clf.verbose = True
    nsample = 10000
    [ntime, nnum, ncat] = [11, 15, 13]
    datainfo = np.array(['TIME'] * ntime + ['NUM'] * nnum + ['CAT'] * ncat)
    x_num = np.random.random([nsample, nnum])
    x_time = np.random.random([nsample, ntime])
    x_cat = np.random.randint(0, 200, [nsample, ncat])
    train_x = np.concatenate([x_num, x_time, x_cat], axis=1)
    train_y = np.random.randint(0, 3, nsample)
    clf.fit(train_x, train_y, data_info=datainfo)
    results = clf.predict(train_x)
    assert all(map(lambda result: result in train_y, results))
    score = clf.evaluate(train_x, train_y)
    assert score >= 0.0
    clean_dir(TEST_TEMP_DIR)
Exemplo n.º 55
0
def test_fit_predict(_, _1):
    Constant.MAX_ITER_NUM = 1
    Constant.MAX_MODEL_NUM = 4
    Constant.SEARCH_MAX_ITER = 1
    Constant.T_MIN = 0.8
    Constant.DATA_AUGMENTATION = False

    clf = ImageClassifier(path=TEST_TEMP_DIR, verbose=True)
    train_x = np.random.rand(100, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert all(map(lambda result: result in train_y, results))

    clf = ImageClassifier1D(path=TEST_TEMP_DIR, verbose=True)
    train_x = np.random.rand(100, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert all(map(lambda result: result in train_y, results))

    clf = ImageClassifier3D(path=TEST_TEMP_DIR, verbose=True)
    train_x = np.random.rand(100, 25, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert all(map(lambda result: result in train_y, results))

    clf = ImageRegressor1D(path=TEST_TEMP_DIR, verbose=True)
    train_x = np.random.rand(100, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert len(results) == len(train_y)

    clf = ImageRegressor3D(path=TEST_TEMP_DIR, verbose=True)
    train_x = np.random.rand(100, 25, 25, 25, 1)
    train_y = np.random.randint(0, 5, 100)
    clf.fit(train_x, train_y)
    results = clf.predict(train_x)
    assert len(results) == len(train_y)

    clean_dir(TEST_TEMP_DIR)