Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
 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))
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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