# Generate bars data my_data = model.generate_data(params_gt, N // comm.size) # Configure DataLogger print_list = ('T', 'Q', 'pi', 'sigma', 'N', 'MAE') store_list = ('*') dlog.set_handler(print_list, TextPrinter) dlog.set_handler(print_list, StoreToTxt, output_path + '/terminal.txt') dlog.set_handler(store_list, StoreToH5, output_path + '/result.h5') model_params = model.standard_init(my_data) if 'anneal' in params: anneal = params.get('anneal') else: # Choose annealing schedule anneal = LinearAnnealing(50) anneal['T'] = [(0, 2.), (.7, 1.)] anneal['Ncut_factor'] = [(0, 0.), (2. / 3, 1.)] anneal['anneal_prior'] = False # Create and start EM annealing em = EM(model=model, anneal=anneal) em.data = my_data em.lparams = model_params em.run() dlog.close() pprint("Done")
# Choose annealing schedule from prosper.em.annealing import LinearAnnealing anneal = LinearAnnealing(50) # decrease anneal['T'] = [(0, 5.), (.8, 1.)] anneal['Ncut_factor'] = [(0, 0.), (0.5, 0.), (0.6, 1.)] # anneal['Ncut_factor'] = [(0,0.),(0.7,1.)] # anneal['Ncut_factor'] = [(0,0.),(0.7,1.)] anneal['W_noise'] = [(0, np.std(ts) / 2.), (0.7, 0.)] # anneal['pi_noise'] = [(0,0.),(0.2,0.1),(0.7,0.)] anneal['anneal_prior'] = False assert train_labels.shape[0] == ts.shape[0] my_data = {'y': ts, 'l': train_labels} model_params = model.standard_init(my_data) pp("model defined", 0) em = EM(model=model, anneal=anneal) em.data = my_data em.lparams = model_params pp("em defined", 0) em.run(verbose=True) pp("em finished", 0) my_test_data = {'y': ts_test} res = model.inference(anneal, em.lparams, my_test_data) sparse_codes = res['s'][:, 0, :] # should be Number of samples x H dlog.close() model_params = em.lparams if resume: res_file = output_path + 'results.h5' with tb.open_file(res_file) as fh: