Пример #1
0
    def test_vader_save_load(self):
        save_path = "test_vader_save_load"
        if os.path.exists(save_path):
            shutil.rmtree(save_path)

        X_train, W_train, y_train = generate_x_w_y(7, 400)
        # noinspection PyTypeChecker
        vader = VADER(X_train=X_train,
                      W_train=W_train,
                      y_train=y_train,
                      save_path=save_path,
                      n_hidden=[12, 2],
                      k=4,
                      learning_rate=1e-3,
                      output_activation=None,
                      recurrent=True,
                      batch_size=16)
        vader.pre_fit(n_epoch=10, verbose=True)
        vader.fit(n_epoch=10, verbose=True)
        clustering_before_loading = vader.cluster(X_train)

        loaded_vader = VADER.load_model(save_path, X_train, W_train, y_train)
        clustering_after_loading = loaded_vader.cluster(X_train)

        if os.path.exists(save_path):
            shutil.rmtree(save_path)

        assert list(clustering_before_loading) == list(
            clustering_after_loading)
Пример #2
0
    data_reader_spec = importlib.util.spec_from_file_location(
        "data_reader", args.data_reader_script)
    data_reader_module = importlib.util.module_from_spec(data_reader_spec)
    data_reader_spec.loader.exec_module(data_reader_module)
    data_reader = data_reader_module.DataReader()

    x_tensor = data_reader.read_data(args.input_data_file)
    w_tensor = generate_wtensor_from_xtensor(x_tensor)
    input_data = np.nan_to_num(x_tensor)
    input_weights = w_tensor
    features = data_reader.features
    time_points = data_reader.time_points
    x_label = data_reader.time_point_meaning
    ids_list = data_reader.ids_list

    vader = VADER.load_model(args.load_path, input_data, input_weights)
    n_hidden = [str(layer_size) for layer_size in vader.n_hidden]
    report_suffix = f"k{str(vader.K)}" \
                    f"_n_hidden{'_'.join(n_hidden)}" \
                    f"_learning_rate{str(vader.learning_rate)}" \
                    f"_batch_size{str(vader.batch_size)}" \
                    f"_n_epoch{str(vader.n_epoch)}" \
                    f"_seed{str(args.seed)}"
    plot_file_path = os.path.join(
        args.output_path, f"z_scores_trajectories_{report_suffix}.pdf")
    clustering_file_path = os.path.join(args.output_path,
                                        f"clustering_{report_suffix}.csv")
    clustering = vader.cluster(input_data, input_weights)
    pd.Series(list(clustering), index=ids_list, dtype=np.int64,
              name='Cluster').to_csv(clustering_file_path)