コード例 #1
0
def transformer_test(transformer):
    hits_params = {
        loader_keys.DATA_PATH:
        os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
        loader_keys.N_SAMPLES_BY_CLASS:
        10000,
        loader_keys.TEST_PERCENTAGE:
        0.2,
        loader_keys.VAL_SET_INLIER_PERCENTAGE:
        0.1,
        loader_keys.USED_CHANNELS: [0, 1, 2, 3],
        loader_keys.CROP_SIZE:
        21,
        general_keys.RANDOM_SEED:
        42,
        loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
        1
    }
    hits_outlier_dataset = HiTSOutlierLoader(hits_params)
    (x_train, y_train), (x_val, y_val), (
        x_test,
        y_test) = hits_outlier_dataset.get_outlier_detection_datasets()
    x_train_transform, y_train_transform = transformer.apply_all_transforms(
        x=x_train)
    x_val_transform, y_val_transform = transformer.apply_all_transforms(
        x=x_val)
    x_test_transform, y_test_transform = transformer.apply_all_transforms(
        x=x_test)
    return x_train_transform, y_train_transform, x_val_transform, \
           y_val_transform, x_test_transform, y_test_transform
def hits4c_tr18():
    hits_params = {
        loader_keys.DATA_PATH:
        os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
        loader_keys.N_SAMPLES_BY_CLASS:
        10000,
        loader_keys.TEST_PERCENTAGE:
        0.2,
        loader_keys.VAL_SET_INLIER_PERCENTAGE:
        0.1,
        loader_keys.USED_CHANNELS: [0, 1, 2, 3],
        loader_keys.CROP_SIZE:
        21,
        general_keys.RANDOM_SEED:
        42,
        loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
        1
    }
    data_loader = HiTSOutlierLoader(hits_params)
    (x_train, y_train), (x_val, y_val), (
        x_test, y_test) = data_loader.get_outlier_detection_datasets()
    transformer = transformations_tf.KernelTransformer(flips=True,
                                                       gauss=False,
                                                       log=False)
    mdl = EnsembleOVOTransformODSimpleModel(
        data_loader,
        transformer=transformer,
        input_shape=x_train.shape[1:],
        results_folder_name='transform_selection_1')
    mdl.fit(x_train, x_val, train_batch_size=1024, verbose=0)
    train_matrix_scores = mdl.predict_matrix_score(x_train,
                                                   transform_batch_size=1024)
    val_matrix_scores = mdl.predict_matrix_score(x_val,
                                                 transform_batch_size=1024)
    test_outlier_matrix_scores = mdl.predict_matrix_score(
        x_test[y_test == 0], transform_batch_size=1024)
    utils.save_pickle(
        train_matrix_scores,
        os.path.join(
            mdl.main_model_path,
            'train_matrix_scores_translations+flip(18)_train_step.pkl'))
    utils.save_pickle(
        val_matrix_scores,
        os.path.join(mdl.main_model_path,
                     'val_matrix_scores_translations+flip(18)_train_step.pkl'))
    utils.save_pickle(
        test_outlier_matrix_scores,
        os.path.join(
            mdl.main_model_path,
            'test_matrix_scores_translations+flip(18)_train_step.pkl'))
def save_normal_and_transformed_data(
        transformer,
        normal_data_name='tf2_normal.pkl',
        transformed_data_name='tf2_old_transformed.pkl'):
    save_dir = os.path.join(PROJECT_PATH, 'tests', 'aux_data')
    utils.check_paths(save_dir)
    hits_params = {
        loader_keys.DATA_PATH:
        os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
        loader_keys.N_SAMPLES_BY_CLASS:
        10000,
        loader_keys.TEST_PERCENTAGE:
        0.2,
        loader_keys.VAL_SET_INLIER_PERCENTAGE:
        0.1,
        loader_keys.USED_CHANNELS: [0, 1, 2, 3],
        loader_keys.CROP_SIZE:
        21,
        general_keys.RANDOM_SEED:
        42,
        loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
        1
    }
    hits_outlier_dataset = HiTSOutlierLoader(hits_params)
    (x_train, y_train), (x_val, y_val), (
        x_test,
        y_test) = hits_outlier_dataset.get_outlier_detection_datasets()
    x_train_transform, y_train_transform = transformer.apply_all_transforms(
        x=x_train)
    x_val_transform, y_val_transform = transformer.apply_all_transforms(
        x=x_val)
    x_test_transform, y_test_transform = transformer.apply_all_transforms(
        x=x_test)
    normal_data = ((x_train, y_train), (x_val, y_val), (x_test, y_test))
    transformed_data = ((x_train_transform, y_train_transform),
                        (x_val_transform, y_val_transform), (x_test_transform,
                                                             y_test_transform))
    utils.save_pickle(normal_data, os.path.join(save_dir, normal_data_name))
    utils.save_pickle(transformed_data,
                      os.path.join(save_dir, transformed_data_name))
コード例 #4
0
def test_all_tf2_dh_transtransformer_1c():
    transformer = transformations_tf.TransTransformer()
    hits_params = {
        loader_keys.DATA_PATH:
        os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
        loader_keys.N_SAMPLES_BY_CLASS:
        10000,
        loader_keys.TEST_PERCENTAGE:
        0.2,
        loader_keys.VAL_SET_INLIER_PERCENTAGE:
        0.1,
        loader_keys.USED_CHANNELS: [2],
        loader_keys.CROP_SIZE:
        21,
        general_keys.RANDOM_SEED:
        42,
        loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
        1
    }
    hits_outlier_dataset = HiTSOutlierLoader(hits_params)
    scores_list = []
    delta_times_list = []
    for i in range(N_RUNS):
        mdl = TransformODSimpleModel(data_loader=None,
                                     transformer=transformer,
                                     input_shape=(21, 21, 1),
                                     drop_rate=0.0)
        start_time = time.time()
        scores = test_all_tf2(mdl,
                              transformer,
                              hits_outlier_dataset,
                              dataset_name='hits-1-c',
                              epochs=2)
        end_time = time.time()
        delta_times_list.append(end_time - start_time)
        scores_list.append(scores)
        del mdl
    file_path = os.path.join(PROJECT_PATH, 'tests', 'aux_results',
                             'test_models_tf1-tf2.txt')
    print_scores_times_to_file(
        file_path,
        'all_tf2_unchanged_dh_transtransformer_1c_DP0.0_fast_no_prints\n NRUNS: %i'
        % N_RUNS, scores_list, delta_times_list)
コード例 #5
0
     os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
     loader_keys.N_SAMPLES_BY_CLASS:
     10000,
     loader_keys.TEST_PERCENTAGE:
     0.2,
     loader_keys.VAL_SET_INLIER_PERCENTAGE:
     0.1,
     loader_keys.USED_CHANNELS: [2],
     loader_keys.CROP_SIZE:
     21,
     general_keys.RANDOM_SEED:
     42,
     loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
     1
 }
 data_loader = HiTSOutlierLoader(hits_params)
 (x_train, y_train), (x_val, y_val), (
     x_test, y_test) = data_loader.get_outlier_detection_datasets()
 # transformer = transformations_tf.KernelTransformer(
 #     flips=True, gauss=False, log=False)
 transformer = transformations_tf.Transformer()
 x_train_transformed, transformations_inds = transformer.apply_all_transforms(
     x_train)
 x_val_transformed, transformations_inds_val = transformer.apply_all_transforms(
     x_val)
 mdl = DeepHits(input_shape=x_train.shape[1:],
                n_classes=transformer.n_transforms)
 mdl.fit(x_train_transformed,
         to_categorical(transformations_inds),
         verbose=1,
         epochs=100,
     os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
     loader_keys.N_SAMPLES_BY_CLASS:
     10000,
     loader_keys.TEST_PERCENTAGE:
     0.2,
     loader_keys.VAL_SET_INLIER_PERCENTAGE:
     0.1,
     loader_keys.USED_CHANNELS: [0, 1, 2, 3],
     loader_keys.CROP_SIZE:
     21,
     general_keys.RANDOM_SEED:
     42,
     loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
     1
 }
 hits_outlier_dataset = HiTSOutlierLoader(hits_params)
 transformer = Transformer()
 trans_transformer = TransTransformer()
 kernel_transformer = KernelTransformer()
 kernel_plus_transformer = PlusKernelTransformer()
 # data_loader, transformer, dataset_name, class_idx_to_run_experiments_on, n_runs
 # TODO: delgate names to data_laoders
 experiments_list = [
     # (
     #   ztf_outlier_dataset, trans_transformer, 'ztf-real-bog-v1', 'real',
     #   N_RUNS),
     # (
     #   ztf_outlier_dataset, kernel_transformer, 'ztf-real-bog-v1', 'real',
     #   N_RUNS),
     # (
     #   ztf_outlier_dataset, transformer, 'ztf-real-bog-v1', 'real',
        os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
        loader_keys.N_SAMPLES_BY_CLASS:
        10000,
        loader_keys.TEST_PERCENTAGE:
        0.2,
        loader_keys.VAL_SET_INLIER_PERCENTAGE:
        0.1,
        loader_keys.USED_CHANNELS: [0, 1, 2, 3],
        loader_keys.CROP_SIZE:
        21,
        general_keys.RANDOM_SEED:
        42,
        loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
        1
    }
    hits_outlier_dataset = HiTSOutlierLoader(hits_params)
    (x_train, y_train), (x_val, y_val), (
        x_test,
        y_test) = hits_outlier_dataset.get_outlier_detection_datasets()

    transformer = TransTransformer()
    x_train_transform, y_train_transform = transformer.apply_all_transforms(
        x=x_train)
    x_val_transform, y_val_transform = transformer.apply_all_transforms(
        x=x_val)
    x_test_transform, y_test_transform = transformer.apply_all_transforms(
        x=x_test)
    time.sleep(10)
    mdl = AlreadyTransformODModel(transformer=transformer,
                                  input_shape=x_train.shape[1:])
コード例 #8
0
def best_score_evaluation(result_folder_name, epochs, patience=0):
    trainer_params = {
        param_keys.RESULTS_FOLDER_NAME: result_folder_name,
        'epochs': epochs,
        'patience': patience,
    }
    # data loaders
    hits_params = {
        loader_keys.DATA_PATH:
        os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
        loader_keys.N_SAMPLES_BY_CLASS:
        10000,
        loader_keys.TEST_PERCENTAGE:
        0.2,
        loader_keys.VAL_SET_INLIER_PERCENTAGE:
        0.1,
        loader_keys.USED_CHANNELS: [0, 1, 2, 3],  # [2],#
        loader_keys.CROP_SIZE:
        21,
        general_keys.RANDOM_SEED:
        42,
        loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
        1
    }
    hits_loader = HiTSOutlierLoader(hits_params)
    ztf_params = {
        loader_keys.DATA_PATH:
        os.path.join(PROJECT_PATH, '../datasets/ztf_v1_bogus_added.pkl'),
        loader_keys.VAL_SET_INLIER_PERCENTAGE:
        0.1,
        loader_keys.USED_CHANNELS: [0, 1, 2],
        loader_keys.CROP_SIZE:
        21,
        general_keys.RANDOM_SEED:
        42,
        loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
        1
    }
    ztf_loader = ZTFOutlierLoader(ztf_params)
    # transformers
    transformer_72 = transformations_tf.Transformer()
    trans_transformer = transformations_tf.TransTransformer()
    kernel_transformer = transformations_tf.KernelTransformer()
    plus_kernel_transformer = transformations_tf.PlusKernelTransformer()
    # trainers
    hits_trainer = Trainer(hits_loader, trainer_params)
    ztf_trainer = Trainer(ztf_loader, trainer_params)

    model_constructors_list = (TransformODModel, )
    transformers_list = (
        plus_kernel_transformer,
        kernel_transformer,
        transformer_72,
        trans_transformer,
    )
    trainers_list = (hits_trainer, )  # (ztf_trainer, hits_trainer, )
    trainer_model_transformer_tuples = list(
        itertools.product(trainers_list, model_constructors_list,
                          transformers_list))

    for trainer, model_constructor, transformer in trainer_model_transformer_tuples:
        trainer.train_model_n_times(model_constructor,
                                    transformer,
                                    trainer_params,
                                    train_times=TRAIN_TIME)

    hits_trainer.create_tables_of_results_folders()
コード例 #9
0
     os.path.join(PROJECT_PATH, '../datasets/HiTS2013_300k_samples.pkl'),
     loader_keys.N_SAMPLES_BY_CLASS:
     10000,
     loader_keys.TEST_PERCENTAGE:
     0.2,
     loader_keys.VAL_SET_INLIER_PERCENTAGE:
     0.1,
     loader_keys.USED_CHANNELS: [0, 1, 2, 3],  # [2],#
     loader_keys.CROP_SIZE:
     21,
     general_keys.RANDOM_SEED:
     42,
     loader_keys.TRANSFORMATION_INLIER_CLASS_VALUE:
     1
 }
 data_loader = HiTSOutlierLoader(hits_params)
 transformer = TransTransformer()
 params = {
     param_keys.RESULTS_FOLDER_NAME: 'trainer_test',
     'epochs': 1,
 }
 trainer = Trainer(params)
 trainer.train_model_n_times(TransformODModel,
                             data_loader,
                             transformer,
                             params,
                             train_times=3)
 trainer.train_model_n_times(TransformODSimpleModel,
                             data_loader,
                             transformer,
                             params,