def main(): t = time() check_flags() print(get_model_info_as_str()) data_train = SiameseModelData(FLAGS.dataset_train) dist_sim_calculator = DistSimCalculator( FLAGS.dataset_train, FLAGS.ds_metric, FLAGS.ds_algo) model = create_model(FLAGS.model, data_train.input_dim(), data_train, dist_sim_calculator) os.environ["CUDA_VISIBLE_DEVICES"] = str(FLAGS.gpu) config = tf.ConfigProto() config.gpu_options.allow_growth = True sess = tf.Session(config=config) saver = Saver(sess) sess.run(tf.global_variables_initializer()) if FLAGS.dataset_val_test == FLAGS.dataset_train: data_val_test = data_train else: # Generalizability test: val test on unseen train and test graphs. data_val_test = SiameseModelData(FLAGS.dataset_val_test) eval = Eval(data_val_test, dist_sim_calculator) try: train_costs, train_times, val_results_dict = \ train_val_loop(data_train, data_val_test, eval, model, saver, sess) best_iter, test_results = \ test(data_val_test, eval, model, saver, sess, val_results_dict) overall_time = convert_long_time_to_str(time() - t) print(overall_time) saver.save_overall_time(overall_time) except: traceback.print_exc() else: return train_costs, train_times, val_results_dict, best_iter, test_results
def _log_model_info(self, logdir, sess): model_info_table = [["**key**", "**value**"]] with open(logdir + '/model_info.txt', 'w') as f: s = get_model_info_as_str(model_info_table) f.write(s) model_info_op = \ tf.summary.text( 'model_info', tf.convert_to_tensor(model_info_table)) self.tw.add_summary(sess.run(model_info_op))
def test(data, eval, model, saver, sess, val_results_dict): best_iter = model.find_load_best_model(sess, saver, val_results_dict) saver.clean_up_saved_models(best_iter) gs1, gs2 = eval.get_test_gs_as_tuple(data) sim_mat, loss_list, time_list = run_pairs_for_val_test( gs1, gs2, eval, model, saver, sess, 'test') node_embs_list, graph_embs_mat, emb_time = collect_embeddings( gs1, gs2, model, saver, sess) attentions = collect_attentions(gs1, gs2, model, saver, sess) print('Evaluating...') results = eval.eval_for_test(sim_mat, loss_list, time_list, node_embs_list, graph_embs_mat, attentions, model.get_eval_metrics_for_test(), saver) if not FLAGS.plot_results: pretty_print_dict(results) print('Results generated with {} metrics; collecting embeddings'.format( len(results))) print(get_model_info_as_str()) saver.save_test_info(sim_mat, time_list, best_iter, results, node_embs_list, graph_embs_mat, emb_time, attentions) return best_iter, results
def main(): t = time() check_flags() print(get_model_info_as_str()) data = SiameseModelData() dist_calculator = DistCalculator( FLAGS.dataset, FLAGS.dist_metric, FLAGS.dist_algo) model = create_model(FLAGS.model, data.input_dim(), data, dist_calculator) os.environ["CUDA_VISIBLE_DEVICES"] = str(FLAGS.gpu) config = tf.ConfigProto() config.gpu_options.allow_growth=True sess = tf.Session(config=config) saver = Saver(sess) sess.run(tf.global_variables_initializer()) eval = Eval(data, dist_calculator) train_costs, train_times, val_results_dict = \ train_val_loop(data, eval, model, saver, sess) best_iter, test_results = \ test(data, eval, model, saver, sess, val_results_dict) overall_time = convert_long_time_to_str(time() - t) print(overall_time) saver.save_overall_time(overall_time) return train_costs, train_times, val_results_dict, best_iter, test_results
def main(): t = time() conf_code = extract_config_code() check_flags() print(get_model_info_as_str()) data = SiameseModelData(FLAGS.dataset_train) dist_sim_calculator = DistSimCalculator(FLAGS.dataset_train, FLAGS.ds_metric, FLAGS.ds_algo) model = create_model(FLAGS.model, data.input_dim(), data, dist_sim_calculator) os.environ["CUDA_VISIBLE_DEVICES"] = str(FLAGS.gpu) config = tf.compat.v1.ConfigProto() config.gpu_options.allow_growth = True sess = tf.compat.v1.Session(config=config) saver = Saver(sess) sess.run(tf.compat.v1.global_variables_initializer()) train_costs, train_times = train_loop(data, model, saver, sess) test(data, model, saver, sess) saver.save_conf_code(conf_code) overall_time = convert_long_time_to_str(time() - t) print(overall_time, saver.get_log_dir()) saver.save_overall_time(overall_time) return train_costs, train_times
def setup_file(): f = open(file_name, 'w') f.write(get_model_info_as_str()) f.write(','.join(map(str, header)) + '\n') f.flush() return f