def main(): parser = argparse.ArgumentParser() parser.add_argument('graph_file') parser.add_argument('embeddings_file') parser.add_argument('--deg', action='store_true', help='angle in degrees') parser.add_argument('--cda', action='store_true', help='correct directed arcs') parser.add_argument('--cda-max-vertices', type=int, default=1000) parser.add_argument('--gr', action='store_true', help='evaluate greedy routing') parser.add_argument('--gr-max-pairs', type=int, default=10000) args = parser.parse_args() vertices, edges = read_graph_from_file(args.graph_file) skip_lines=0 if args.deg: skip_lines=2 embeddings = read_embeddings_from_file(args.embeddings_file, skip_lines, degrees=args.deg) print "Evaluate embeddings" report = evaluate_embeddings(embeddings, edges, cda=args.cda, cda_max_vertices=args.cda_max_vertices, greedy_routing=args.gr, gr_max_pairs=args.gr_max_pairs ) print 'report' for name, value in report: print '{}: {}'.format(name, value)
def main(): parser = argparse.ArgumentParser() parser.add_argument('graph_file') parser.add_argument('out_prefix') parser.add_argument( '--mode', default='fit_degrees_sgd', help='random|degrees|fit|fit_random|fit_degrees|fit_degrees_sgd') parser.add_argument('--learning-rate', default=0.1, help='learning rate for fit_degrees_sgd', type=float) parser.add_argument('--n-epoch', default=100, help='number of training epoch for fit_degrees_sgd', type=int) parser.add_argument('--ratio-to-second', default=2., help='ratio of nedges to second neighbour', type=float) parser.add_argument('--ratio-between-first', default=1., help='ratio of nedges between first neighbours', type=float) parser.add_argument('--ratio-random', default=1., help='ratio of random nedges', type=float) parser.add_argument('--silent', action='store_true') args = parser.parse_args() vertices, edges = read_graph_from_file(args.graph_file) n = len(vertices) print "Number of vertices: {}".format(n) print "Number of edges: {}".format(len(edges)) print "Number of non-edges: {}".format(n * (n - 1) / 2 - len(edges)) print "Find embeddings" embeddings, info = find_embeddings( vertices, edges, mode=args.mode, learning_rate=args.learning_rate, n_epoch=args.n_epoch, ratio_to_second=args.ratio_to_second, ratio_between_first=args.ratio_between_first, ratio_random=args.ratio_random, silent=args.silent) with open(args.out_prefix + '-embeddings.txt', 'w') as of: for v in embeddings.keys(): r, phi = embeddings[v] of.write('\t'.join(map(str, [v, r, phi])) + '\n') core = info['core'] if core is not None: with open(args.out_prefix + '-core.txt', 'w') as of_core: for v1, v2 in core: of_core.write('\t'.join(map(str, [v1, v2])) + '\n')
def main(): parser = argparse.ArgumentParser() parser.add_argument("graph_file") parser.add_argument("out_prefix") parser.add_argument( "--mode", default="fit_degrees_sgd", help="random|degrees|fit|fit_random|fit_degrees|fit_degrees_sgd" ) parser.add_argument("--learning-rate", default=0.1, help="learning rate for fit_degrees_sgd", type=float) parser.add_argument("--n-epoch", default=100, help="number of training epoch for fit_degrees_sgd", type=int) parser.add_argument("--ratio-to-second", default=2.0, help="ratio of nedges to second neighbour", type=float) parser.add_argument( "--ratio-between-first", default=1.0, help="ratio of nedges between first neighbours", type=float ) parser.add_argument("--ratio-random", default=1.0, help="ratio of random nedges", type=float) parser.add_argument("--silent", action="store_true") args = parser.parse_args() vertices, edges = read_graph_from_file(args.graph_file) n = len(vertices) print "Number of vertices: {}".format(n) print "Number of edges: {}".format(len(edges)) print "Number of non-edges: {}".format(n * (n - 1) / 2 - len(edges)) print "Find embeddings" embeddings, info = find_embeddings( vertices, edges, mode=args.mode, learning_rate=args.learning_rate, n_epoch=args.n_epoch, ratio_to_second=args.ratio_to_second, ratio_between_first=args.ratio_between_first, ratio_random=args.ratio_random, silent=args.silent, ) with open(args.out_prefix + "-embeddings.txt", "w") as of: for v in embeddings.keys(): r, phi = embeddings[v] of.write("\t".join(map(str, [v, r, phi])) + "\n") core = info["core"] if core is not None: with open(args.out_prefix + "-core.txt", "w") as of_core: for v1, v2 in core: of_core.write("\t".join(map(str, [v1, v2])) + "\n")
def main(): parser = argparse.ArgumentParser() parser.add_argument('graph_file') parser.add_argument('embeddings_file') parser.add_argument('--deg', action='store_true', help='angle in degrees') parser.add_argument('--cda', action='store_true', help='correct directed arcs') parser.add_argument('--cda-max-vertices', type=int, default=1000) parser.add_argument('--gr', action='store_true', help='evaluate greedy routing') parser.add_argument('--gr-max-pairs', type=int, default=10000) parser.add_argument('--core', action='store_true', help='evaluate core') parser.add_argument('--core-exponent', type=float, help='core exponent', default=0.5) parser.add_argument('--seed', type=int, help='random seed', default=42) args = parser.parse_args() np.random.seed(args.seed) vertices, edges = read_graph_from_file(args.graph_file) skip_lines = 0 if args.deg: skip_lines = 2 embeddings = read_embeddings_from_file(args.embeddings_file, skip_lines, degrees=args.deg) print "Evaluate embeddings" report = evaluate_embeddings(embeddings, edges, cda=args.cda, cda_max_vertices=args.cda_max_vertices, greedy_routing=args.gr, gr_max_pairs=args.gr_max_pairs, eval_core=args.core, core_exponent=args.core_exponent) print 'report' for name, value in report: print '{}: {}'.format(name, value)