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)
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)