PARALLEL_PATHS = PARALLEL_TILES * PATHS_PER_TILE_AXIS * PATHS_PER_TILE_AXIS def epoch_to_learning_rate(epoch): if epoch < 100: return 1e-5 elif epoch < 200: return 1e-6 elif epoch < 300: return 1e-7 else: return 1e-8 tiles = tileloader.Tiles(PATHS_PER_TILE_AXIS, SEGMENT_LENGTH, PARALLEL_TILES, TILE_MODE) tiles.prepare_training() test_tile_data = tiles.get_test_tile_data() # initialize model and session print('initializing model') m = model.Model(tiles.num_input_channels()) session = tf.Session() model_path = MODEL_BASE + '/model_latest/model' best_path = MODEL_BASE + '/model_best/model' if os.path.isfile(model_path + '.meta'): print('... loading existing model') m.saver.restore(session, model_path) else: print('... initializing a new model') session.run(m.init_op)
if args.t: tileloader.tile_dir = args.t if args.g: tileloader.graph_dir = args.g if args.j: tileloader.pytiles_path = os.path.join(args.j, 'pytiles.json') tileloader.startlocs_path = os.path.join(args.j, 'starting_locations.json') MODEL_BASE = args.modelpath WINDOW_SIZE = 512 NUM_TRAIN_TILES = 1024 TILE_SIZE = 4096 RECT_OVERRIDE = None NUM_BUCKETS = 64 MASK_NEAR_ROADS = False tiles = tileloader.Tiles(2, 20, NUM_TRAIN_TILES + 8, 'sat') tiles.prepare_training() train_tiles = tiles.train_tiles # initialize model and session print 'initializing model' m = model.Model(bn=True, size=512) session = tf.Session() model_path = MODEL_BASE + '/model_latest/model' best_path = MODEL_BASE + '/model_best/model' if os.path.isfile(model_path + '.meta'): print '... loading existing model' m.saver.restore(session, model_path) else: print '... initializing a new model' session.run(m.init_op)
if avg_prob < threshold: bad_edges.update(rs.edges) print('filtering {} edges'.format(len(bad_edges))) ng = graph.Graph() vertex_map = {} for vertex in g.vertices: vertex_map[vertex] = ng.add_vertex(vertex.point) for edge in g.edges: if edge not in bad_edges: ng.add_edge(vertex_map[edge.src], vertex_map[edge.dst]) return ng if __name__ == '__main__': print('reading tiles') tiles = tileloader.Tiles(2, SEGMENT_LENGTH, 16, TILE_MODE) print('initializing model') m = model.Model(bn=True, size=2048) session = tf.Session() m.saver.restore(session, MODEL_PATH) def too_close(idx, p): for edge in idx.search(p.bounds().add_tol(60)): if edge.segment().distance(p) < 60: return True return False for x, y in TILE_LIST: EXISTING_GRAPH_FNAME = os.path.join(tile_graph_path, '{}_{}.graph'.format(x, y))
TILE_START = geom.Point(1, -1).scale(TILE_SIZE) elif REGION == 'chicago': TILE_START = geom.Point(-1, -2).scale(TILE_SIZE) else: TILE_START = geom.Point(-1, -1).scale(TILE_SIZE) TILE_END = TILE_START.add(geom.Point(2, 2).scale(TILE_SIZE)) if args.t: tileloader.tile_dir = args.t if args.g: tileloader.graph_dir = args.g if args.j: tileloader.pytiles_path = os.path.join(args.j, 'pytiles.json') tileloader.startlocs_path = os.path.join(args.j, 'starting_locations.json') print 'reading tiles' #tileloader.use_vhr() tiles = tileloader.Tiles(PATHS_PER_TILE_AXIS, SEGMENT_LENGTH, 16, TILE_MODE) print 'initializing model' model.BATCH_SIZE = 1 m = model.Model(tiles.num_input_channels()) session = tf.Session() m.saver.restore(session, model_path) if EXISTING_GRAPH_FNAME is None: rect = geom.Rectangle(TILE_START, TILE_END) tile_data = tiles.get_tile_data(REGION, rect) if USE_TL_LOCATIONS: start_loc = random.choice(tile_data['starting_locations']) else: def match_point(p):