Python graph_tool.GraphView() Examples
The following are 30
code examples of graph_tool.GraphView().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
graph_tool
, or try the search function
.
Example #1
Source File: graph_utils.py From DOTA_models with Apache License 2.0 | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #2
Source File: graph_utils.py From object_detection_with_tensorflow with MIT License | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #3
Source File: graph_utils.py From g-tensorflow-models with Apache License 2.0 | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #4
Source File: graph_utils.py From object_detection_kitti with Apache License 2.0 | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #5
Source File: graph_utils.py From hands-detection with MIT License | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #6
Source File: graph_utils.py From models with Apache License 2.0 | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #7
Source File: graph_utils.py From Gun-Detector with Apache License 2.0 | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #8
Source File: graph_utils.py From multilabel-image-classification-tensorflow with MIT License | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #9
Source File: graph_utils.py From yolo_v2 with Apache License 2.0 | 6 votes |
def get_hardness_distribution(gtG, max_dist, min_dist, rng, trials, bins, nodes, n_ori, step_size): heuristic_fn = lambda node_ids, node_id: \ heuristic_fn_vec(nodes[node_ids, :], nodes[[node_id], :], n_ori, step_size) num_nodes = gtG.num_vertices() gt_dists = []; h_dists = []; for i in range(trials): end_node_id = rng.choice(num_nodes) gt_dist = gt.topology.shortest_distance(gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] gt_dist = gt_dist[ind] h_dist = heuristic_fn(ind, end_node_id)[:,0] gt_dists.append(gt_dist) h_dists.append(h_dist) gt_dists = np.concatenate(gt_dists) h_dists = np.concatenate(h_dists) hardness = 1. - h_dists*1./gt_dists hist, _ = np.histogram(hardness, bins) hist = hist.astype(np.float64) hist = hist / np.sum(hist) return hist
Example #10
Source File: graph_utils.py From multilabel-image-classification-tensorflow with MIT License | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #11
Source File: graph_utils.py From object_detection_with_tensorflow with MIT License | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #12
Source File: graph_utils.py From g-tensorflow-models with Apache License 2.0 | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #13
Source File: graph_utils.py From DOTA_models with Apache License 2.0 | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #14
Source File: graph_utils.py From object_detection_kitti with Apache License 2.0 | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #15
Source File: graph_utils.py From models with Apache License 2.0 | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #16
Source File: graph_utils.py From hands-detection with MIT License | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #17
Source File: graph_utils.py From yolo_v2 with Apache License 2.0 | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #18
Source File: graph_utils.py From Gun-Detector with Apache License 2.0 | 5 votes |
def get_distance_node_list(gtG, source_nodes, direction, weights=None): gtG_ = gt.Graph(gtG) v = gtG_.add_vertex() if weights is not None: weights = gtG_.edge_properties[weights] for s in source_nodes: e = gtG_.add_edge(s, int(v)) if weights is not None: weights[e] = 0. if direction == 'to': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=True), source=gtG_.vertex(int(v)), target=None, weights=weights) elif direction == 'from': dist = gt.topology.shortest_distance( gt.GraphView(gtG_, reversed=False), source=gtG_.vertex(int(v)), target=None, weights=weights) dist = np.array(dist.get_array()) dist = dist[:-1] if weights is None: dist = dist-1 return dist # Functions for semantically labelling nodes in the traversal graph.
Example #19
Source File: graph_utils.py From multilabel-image-classification-tensorflow with MIT License | 4 votes |
def rng_next_goal_rejection_sampling(start_node_ids, batch_size, gtG, rng, max_dist, min_dist, max_dist_to_compute, sampling_d, target_d, nodes, n_ori, step_size, bins, M): sample_start_nodes = start_node_ids is None dists = []; pred_maps = []; end_node_ids = []; start_node_ids_ = []; hardnesss = []; gt_dists = []; num_nodes = gtG.num_vertices() for i in range(batch_size): done = False while not done: if sample_start_nodes: start_node_id = rng.choice(num_nodes) else: start_node_id = start_node_ids[i] gt_dist = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=False), source=start_node_id, target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] ind = rng.permutation(ind) gt_dist = gt_dist[ind]*1. h_dist = heuristic_fn_vec(nodes[ind, :], nodes[[start_node_id], :], n_ori, step_size)[:,0] hardness = 1. - h_dist / gt_dist sampled_ind = _rejection_sampling(rng, sampling_d, target_d, bins, hardness, M) if sampled_ind < ind.size: # print sampled_ind end_node_id = ind[sampled_ind] hardness = hardness[sampled_ind] gt_dist = gt_dist[sampled_ind] done = True # Compute distance from end node to all nodes, to return. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=end_node_id, target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) hardnesss.append(hardness); dists.append(dist); pred_maps.append(pred_map); start_node_ids_.append(start_node_id); end_node_ids.append(end_node_id); gt_dists.append(gt_dist); paths = None return start_node_ids_, end_node_ids, dists, pred_maps, paths, hardnesss, gt_dists
Example #20
Source File: graph_utils.py From g-tensorflow-models with Apache License 2.0 | 4 votes |
def rng_room_to_room(batch_size, gtG, rng, max_dist, max_dist_to_compute, node_room_ids, nodes=None, compute_path=False): # Sample one of the rooms, compute the distance field. Pick a destination in # another room if possible otherwise anywhere outside this room. dists = []; pred_maps = []; paths = []; start_node_ids = []; end_node_ids = []; room_ids = np.unique(node_room_ids[node_room_ids[:,0] >= 0, 0]) for i in range(batch_size): room_id = rng.choice(room_ids) end_node_id = rng.choice(np.where(node_room_ids[:,0] == room_id)[0]) end_node_ids.append(end_node_id) # Compute distances. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) dists.append(dist) pred_maps.append(pred_map) # Randomly sample nodes which are within max_dist. near_ids = dist <= max_dist near_ids = near_ids[:, np.newaxis] # Check to see if there is a non-negative node which is close enough. non_same_room_ids = node_room_ids != room_id non_hallway_ids = node_room_ids != -1 good1_ids = np.logical_and(near_ids, np.logical_and(non_same_room_ids, non_hallway_ids)) good2_ids = np.logical_and(near_ids, non_hallway_ids) good3_ids = near_ids if np.any(good1_ids): start_node_id = rng.choice(np.where(good1_ids)[0]) elif np.any(good2_ids): start_node_id = rng.choice(np.where(good2_ids)[0]) elif np.any(good3_ids): start_node_id = rng.choice(np.where(good3_ids)[0]) else: logging.error('Did not find any good nodes.') start_node_ids.append(start_node_id) path = None if compute_path: path = get_path_ids(start_node_ids[i], end_node_ids[i], pred_map) paths.append(path) return start_node_ids, end_node_ids, dists, pred_maps, paths
Example #21
Source File: graph_utils.py From g-tensorflow-models with Apache License 2.0 | 4 votes |
def rng_next_goal(start_node_ids, batch_size, gtG, rng, max_dist, max_dist_to_compute, node_room_ids, nodes=None, compute_path=False, dists_from_start_node=None): # Compute the distance field from the starting location, and then pick a # destination in another room if possible otherwise anywhere outside this # room. dists = []; pred_maps = []; paths = []; end_node_ids = []; for i in range(batch_size): room_id = node_room_ids[start_node_ids[i]] # Compute distances. if dists_from_start_node == None: dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=False), source=gtG.vertex(start_node_ids[i]), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) else: dist = dists_from_start_node[i] # Randomly sample nodes which are within max_dist. near_ids = dist <= max_dist near_ids = near_ids[:, np.newaxis] # Check to see if there is a non-negative node which is close enough. non_same_room_ids = node_room_ids != room_id non_hallway_ids = node_room_ids != -1 good1_ids = np.logical_and(near_ids, np.logical_and(non_same_room_ids, non_hallway_ids)) good2_ids = np.logical_and(near_ids, non_hallway_ids) good3_ids = near_ids if np.any(good1_ids): end_node_id = rng.choice(np.where(good1_ids)[0]) elif np.any(good2_ids): end_node_id = rng.choice(np.where(good2_ids)[0]) elif np.any(good3_ids): end_node_id = rng.choice(np.where(good3_ids)[0]) else: logging.error('Did not find any good nodes.') # Compute distance to this new goal for doing distance queries. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) dists.append(dist) pred_maps.append(pred_map) end_node_ids.append(end_node_id) path = None if compute_path: path = get_path_ids(start_node_ids[i], end_node_ids[i], pred_map) paths.append(path) return start_node_ids, end_node_ids, dists, pred_maps, paths
Example #22
Source File: graph_utils.py From models with Apache License 2.0 | 4 votes |
def rng_next_goal_rejection_sampling(start_node_ids, batch_size, gtG, rng, max_dist, min_dist, max_dist_to_compute, sampling_d, target_d, nodes, n_ori, step_size, bins, M): sample_start_nodes = start_node_ids is None dists = []; pred_maps = []; end_node_ids = []; start_node_ids_ = []; hardnesss = []; gt_dists = []; num_nodes = gtG.num_vertices() for i in range(batch_size): done = False while not done: if sample_start_nodes: start_node_id = rng.choice(num_nodes) else: start_node_id = start_node_ids[i] gt_dist = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=False), source=start_node_id, target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] ind = rng.permutation(ind) gt_dist = gt_dist[ind]*1. h_dist = heuristic_fn_vec(nodes[ind, :], nodes[[start_node_id], :], n_ori, step_size)[:,0] hardness = 1. - h_dist / gt_dist sampled_ind = _rejection_sampling(rng, sampling_d, target_d, bins, hardness, M) if sampled_ind < ind.size: # print sampled_ind end_node_id = ind[sampled_ind] hardness = hardness[sampled_ind] gt_dist = gt_dist[sampled_ind] done = True # Compute distance from end node to all nodes, to return. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=end_node_id, target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) hardnesss.append(hardness); dists.append(dist); pred_maps.append(pred_map); start_node_ids_.append(start_node_id); end_node_ids.append(end_node_id); gt_dists.append(gt_dist); paths = None return start_node_ids_, end_node_ids, dists, pred_maps, paths, hardnesss, gt_dists
Example #23
Source File: graph_utils.py From multilabel-image-classification-tensorflow with MIT License | 4 votes |
def rng_next_goal(start_node_ids, batch_size, gtG, rng, max_dist, max_dist_to_compute, node_room_ids, nodes=None, compute_path=False, dists_from_start_node=None): # Compute the distance field from the starting location, and then pick a # destination in another room if possible otherwise anywhere outside this # room. dists = []; pred_maps = []; paths = []; end_node_ids = []; for i in range(batch_size): room_id = node_room_ids[start_node_ids[i]] # Compute distances. if dists_from_start_node == None: dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=False), source=gtG.vertex(start_node_ids[i]), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) else: dist = dists_from_start_node[i] # Randomly sample nodes which are within max_dist. near_ids = dist <= max_dist near_ids = near_ids[:, np.newaxis] # Check to see if there is a non-negative node which is close enough. non_same_room_ids = node_room_ids != room_id non_hallway_ids = node_room_ids != -1 good1_ids = np.logical_and(near_ids, np.logical_and(non_same_room_ids, non_hallway_ids)) good2_ids = np.logical_and(near_ids, non_hallway_ids) good3_ids = near_ids if np.any(good1_ids): end_node_id = rng.choice(np.where(good1_ids)[0]) elif np.any(good2_ids): end_node_id = rng.choice(np.where(good2_ids)[0]) elif np.any(good3_ids): end_node_id = rng.choice(np.where(good3_ids)[0]) else: logging.error('Did not find any good nodes.') # Compute distance to this new goal for doing distance queries. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) dists.append(dist) pred_maps.append(pred_map) end_node_ids.append(end_node_id) path = None if compute_path: path = get_path_ids(start_node_ids[i], end_node_ids[i], pred_map) paths.append(path) return start_node_ids, end_node_ids, dists, pred_maps, paths
Example #24
Source File: graph_utils.py From g-tensorflow-models with Apache License 2.0 | 4 votes |
def rng_next_goal_rejection_sampling(start_node_ids, batch_size, gtG, rng, max_dist, min_dist, max_dist_to_compute, sampling_d, target_d, nodes, n_ori, step_size, bins, M): sample_start_nodes = start_node_ids is None dists = []; pred_maps = []; end_node_ids = []; start_node_ids_ = []; hardnesss = []; gt_dists = []; num_nodes = gtG.num_vertices() for i in range(batch_size): done = False while not done: if sample_start_nodes: start_node_id = rng.choice(num_nodes) else: start_node_id = start_node_ids[i] gt_dist = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=False), source=start_node_id, target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] ind = rng.permutation(ind) gt_dist = gt_dist[ind]*1. h_dist = heuristic_fn_vec(nodes[ind, :], nodes[[start_node_id], :], n_ori, step_size)[:,0] hardness = 1. - h_dist / gt_dist sampled_ind = _rejection_sampling(rng, sampling_d, target_d, bins, hardness, M) if sampled_ind < ind.size: # print sampled_ind end_node_id = ind[sampled_ind] hardness = hardness[sampled_ind] gt_dist = gt_dist[sampled_ind] done = True # Compute distance from end node to all nodes, to return. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=end_node_id, target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) hardnesss.append(hardness); dists.append(dist); pred_maps.append(pred_map); start_node_ids_.append(start_node_id); end_node_ids.append(end_node_id); gt_dists.append(gt_dist); paths = None return start_node_ids_, end_node_ids, dists, pred_maps, paths, hardnesss, gt_dists
Example #25
Source File: graph_utils.py From models with Apache License 2.0 | 4 votes |
def rng_next_goal(start_node_ids, batch_size, gtG, rng, max_dist, max_dist_to_compute, node_room_ids, nodes=None, compute_path=False, dists_from_start_node=None): # Compute the distance field from the starting location, and then pick a # destination in another room if possible otherwise anywhere outside this # room. dists = []; pred_maps = []; paths = []; end_node_ids = []; for i in range(batch_size): room_id = node_room_ids[start_node_ids[i]] # Compute distances. if dists_from_start_node == None: dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=False), source=gtG.vertex(start_node_ids[i]), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) else: dist = dists_from_start_node[i] # Randomly sample nodes which are within max_dist. near_ids = dist <= max_dist near_ids = near_ids[:, np.newaxis] # Check to see if there is a non-negative node which is close enough. non_same_room_ids = node_room_ids != room_id non_hallway_ids = node_room_ids != -1 good1_ids = np.logical_and(near_ids, np.logical_and(non_same_room_ids, non_hallway_ids)) good2_ids = np.logical_and(near_ids, non_hallway_ids) good3_ids = near_ids if np.any(good1_ids): end_node_id = rng.choice(np.where(good1_ids)[0]) elif np.any(good2_ids): end_node_id = rng.choice(np.where(good2_ids)[0]) elif np.any(good3_ids): end_node_id = rng.choice(np.where(good3_ids)[0]) else: logging.error('Did not find any good nodes.') # Compute distance to this new goal for doing distance queries. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) dists.append(dist) pred_maps.append(pred_map) end_node_ids.append(end_node_id) path = None if compute_path: path = get_path_ids(start_node_ids[i], end_node_ids[i], pred_map) paths.append(path) return start_node_ids, end_node_ids, dists, pred_maps, paths
Example #26
Source File: graph_utils.py From models with Apache License 2.0 | 4 votes |
def rng_room_to_room(batch_size, gtG, rng, max_dist, max_dist_to_compute, node_room_ids, nodes=None, compute_path=False): # Sample one of the rooms, compute the distance field. Pick a destination in # another room if possible otherwise anywhere outside this room. dists = []; pred_maps = []; paths = []; start_node_ids = []; end_node_ids = []; room_ids = np.unique(node_room_ids[node_room_ids[:,0] >= 0, 0]) for i in range(batch_size): room_id = rng.choice(room_ids) end_node_id = rng.choice(np.where(node_room_ids[:,0] == room_id)[0]) end_node_ids.append(end_node_id) # Compute distances. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) dists.append(dist) pred_maps.append(pred_map) # Randomly sample nodes which are within max_dist. near_ids = dist <= max_dist near_ids = near_ids[:, np.newaxis] # Check to see if there is a non-negative node which is close enough. non_same_room_ids = node_room_ids != room_id non_hallway_ids = node_room_ids != -1 good1_ids = np.logical_and(near_ids, np.logical_and(non_same_room_ids, non_hallway_ids)) good2_ids = np.logical_and(near_ids, non_hallway_ids) good3_ids = near_ids if np.any(good1_ids): start_node_id = rng.choice(np.where(good1_ids)[0]) elif np.any(good2_ids): start_node_id = rng.choice(np.where(good2_ids)[0]) elif np.any(good3_ids): start_node_id = rng.choice(np.where(good3_ids)[0]) else: logging.error('Did not find any good nodes.') start_node_ids.append(start_node_id) path = None if compute_path: path = get_path_ids(start_node_ids[i], end_node_ids[i], pred_map) paths.append(path) return start_node_ids, end_node_ids, dists, pred_maps, paths
Example #27
Source File: graph_utils.py From multilabel-image-classification-tensorflow with MIT License | 4 votes |
def rng_room_to_room(batch_size, gtG, rng, max_dist, max_dist_to_compute, node_room_ids, nodes=None, compute_path=False): # Sample one of the rooms, compute the distance field. Pick a destination in # another room if possible otherwise anywhere outside this room. dists = []; pred_maps = []; paths = []; start_node_ids = []; end_node_ids = []; room_ids = np.unique(node_room_ids[node_room_ids[:,0] >= 0, 0]) for i in range(batch_size): room_id = rng.choice(room_ids) end_node_id = rng.choice(np.where(node_room_ids[:,0] == room_id)[0]) end_node_ids.append(end_node_id) # Compute distances. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) dists.append(dist) pred_maps.append(pred_map) # Randomly sample nodes which are within max_dist. near_ids = dist <= max_dist near_ids = near_ids[:, np.newaxis] # Check to see if there is a non-negative node which is close enough. non_same_room_ids = node_room_ids != room_id non_hallway_ids = node_room_ids != -1 good1_ids = np.logical_and(near_ids, np.logical_and(non_same_room_ids, non_hallway_ids)) good2_ids = np.logical_and(near_ids, non_hallway_ids) good3_ids = near_ids if np.any(good1_ids): start_node_id = rng.choice(np.where(good1_ids)[0]) elif np.any(good2_ids): start_node_id = rng.choice(np.where(good2_ids)[0]) elif np.any(good3_ids): start_node_id = rng.choice(np.where(good3_ids)[0]) else: logging.error('Did not find any good nodes.') start_node_ids.append(start_node_id) path = None if compute_path: path = get_path_ids(start_node_ids[i], end_node_ids[i], pred_map) paths.append(path) return start_node_ids, end_node_ids, dists, pred_maps, paths
Example #28
Source File: graph_utils.py From object_detection_with_tensorflow with MIT License | 4 votes |
def rng_room_to_room(batch_size, gtG, rng, max_dist, max_dist_to_compute, node_room_ids, nodes=None, compute_path=False): # Sample one of the rooms, compute the distance field. Pick a destination in # another room if possible otherwise anywhere outside this room. dists = []; pred_maps = []; paths = []; start_node_ids = []; end_node_ids = []; room_ids = np.unique(node_room_ids[node_room_ids[:,0] >= 0, 0]) for i in range(batch_size): room_id = rng.choice(room_ids) end_node_id = rng.choice(np.where(node_room_ids[:,0] == room_id)[0]) end_node_ids.append(end_node_id) # Compute distances. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) dists.append(dist) pred_maps.append(pred_map) # Randomly sample nodes which are within max_dist. near_ids = dist <= max_dist near_ids = near_ids[:, np.newaxis] # Check to see if there is a non-negative node which is close enough. non_same_room_ids = node_room_ids != room_id non_hallway_ids = node_room_ids != -1 good1_ids = np.logical_and(near_ids, np.logical_and(non_same_room_ids, non_hallway_ids)) good2_ids = np.logical_and(near_ids, non_hallway_ids) good3_ids = near_ids if np.any(good1_ids): start_node_id = rng.choice(np.where(good1_ids)[0]) elif np.any(good2_ids): start_node_id = rng.choice(np.where(good2_ids)[0]) elif np.any(good3_ids): start_node_id = rng.choice(np.where(good3_ids)[0]) else: logging.error('Did not find any good nodes.') start_node_ids.append(start_node_id) path = None if compute_path: path = get_path_ids(start_node_ids[i], end_node_ids[i], pred_map) paths.append(path) return start_node_ids, end_node_ids, dists, pred_maps, paths
Example #29
Source File: graph_utils.py From Gun-Detector with Apache License 2.0 | 4 votes |
def rng_room_to_room(batch_size, gtG, rng, max_dist, max_dist_to_compute, node_room_ids, nodes=None, compute_path=False): # Sample one of the rooms, compute the distance field. Pick a destination in # another room if possible otherwise anywhere outside this room. dists = []; pred_maps = []; paths = []; start_node_ids = []; end_node_ids = []; room_ids = np.unique(node_room_ids[node_room_ids[:,0] >= 0, 0]) for i in range(batch_size): room_id = rng.choice(room_ids) end_node_id = rng.choice(np.where(node_room_ids[:,0] == room_id)[0]) end_node_ids.append(end_node_id) # Compute distances. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=gtG.vertex(end_node_id), target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) dists.append(dist) pred_maps.append(pred_map) # Randomly sample nodes which are within max_dist. near_ids = dist <= max_dist near_ids = near_ids[:, np.newaxis] # Check to see if there is a non-negative node which is close enough. non_same_room_ids = node_room_ids != room_id non_hallway_ids = node_room_ids != -1 good1_ids = np.logical_and(near_ids, np.logical_and(non_same_room_ids, non_hallway_ids)) good2_ids = np.logical_and(near_ids, non_hallway_ids) good3_ids = near_ids if np.any(good1_ids): start_node_id = rng.choice(np.where(good1_ids)[0]) elif np.any(good2_ids): start_node_id = rng.choice(np.where(good2_ids)[0]) elif np.any(good3_ids): start_node_id = rng.choice(np.where(good3_ids)[0]) else: logging.error('Did not find any good nodes.') start_node_ids.append(start_node_id) path = None if compute_path: path = get_path_ids(start_node_ids[i], end_node_ids[i], pred_map) paths.append(path) return start_node_ids, end_node_ids, dists, pred_maps, paths
Example #30
Source File: graph_utils.py From DOTA_models with Apache License 2.0 | 4 votes |
def rng_next_goal_rejection_sampling(start_node_ids, batch_size, gtG, rng, max_dist, min_dist, max_dist_to_compute, sampling_d, target_d, nodes, n_ori, step_size, bins, M): sample_start_nodes = start_node_ids is None dists = []; pred_maps = []; end_node_ids = []; start_node_ids_ = []; hardnesss = []; gt_dists = []; num_nodes = gtG.num_vertices() for i in range(batch_size): done = False while not done: if sample_start_nodes: start_node_id = rng.choice(num_nodes) else: start_node_id = start_node_ids[i] gt_dist = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=False), source=start_node_id, target=None, max_dist=max_dist) gt_dist = np.array(gt_dist.get_array()) ind = np.where(np.logical_and(gt_dist <= max_dist, gt_dist >= min_dist))[0] ind = rng.permutation(ind) gt_dist = gt_dist[ind]*1. h_dist = heuristic_fn_vec(nodes[ind, :], nodes[[start_node_id], :], n_ori, step_size)[:,0] hardness = 1. - h_dist / gt_dist sampled_ind = _rejection_sampling(rng, sampling_d, target_d, bins, hardness, M) if sampled_ind < ind.size: # print sampled_ind end_node_id = ind[sampled_ind] hardness = hardness[sampled_ind] gt_dist = gt_dist[sampled_ind] done = True # Compute distance from end node to all nodes, to return. dist, pred_map = gt.topology.shortest_distance( gt.GraphView(gtG, reversed=True), source=end_node_id, target=None, max_dist=max_dist_to_compute, pred_map=True) dist = np.array(dist.get_array()) pred_map = np.array(pred_map.get_array()) hardnesss.append(hardness); dists.append(dist); pred_maps.append(pred_map); start_node_ids_.append(start_node_id); end_node_ids.append(end_node_id); gt_dists.append(gt_dist); paths = None return start_node_ids_, end_node_ids, dists, pred_maps, paths, hardnesss, gt_dists