SYMBOL INDEX (167 symbols across 27 files) FILE: data_preprocess.py function safe_list_index (line 65) | def safe_list_index(ls: List[Any], elem: Any) -> Optional[int]: function get_agent_features (line 72) | def get_agent_features(df: pd.DataFrame, av_id, num_historical_steps=10,... function get_map_features (line 145) | def get_map_features(map_infos, tf_current_light, dim=3): function process_agent (line 335) | def process_agent(track_info, tracks_to_predict, sdc_track_index, scenar... function process_dynamic_map (line 382) | def process_dynamic_map(dynamic_map_infos): function decode_tracks_from_proto (line 466) | def decode_tracks_from_proto(tracks): function decode_map_features_from_proto (line 488) | def decode_map_features_from_proto(map_features): function decode_dynamic_map_states_from_proto (line 610) | def decode_dynamic_map_states_from_proto(dynamic_map_states): function process_single_data (line 630) | def process_single_data(scenario): function wm2argo (line 663) | def wm2argo(file, dir_name, output_dir): function batch_process9s_transformer (line 693) | def batch_process9s_transformer(dir_name, output_dir, num_workers=2): FILE: scripts/traj_clstering.py function average_distance_vectorized (line 5) | def average_distance_vectorized(point_set1, centroids): function assign_clusters (line 10) | def assign_clusters(sub_X, centroids): function Kdisk_cluster (line 15) | def Kdisk_cluster(X, N=256, tol=0.035, width=0, length=0, a_pos=None): function cal_polygon_contour (line 58) | def cal_polygon_contour(x, y, theta, width, length): FILE: smart/datamodules/scalable_datamodule.py class MultiDataModule (line 9) | class MultiDataModule(pl.LightningDataModule): method __init__ (line 18) | def __init__(self, method setup (line 69) | def setup(self, stage: Optional[str] = None) -> None: method train_dataloader (line 77) | def train_dataloader(self): method val_dataloader (line 82) | def val_dataloader(self): method test_dataloader (line 87) | def test_dataloader(self): FILE: smart/datasets/preprocess.py function cal_polygon_contour (line 10) | def cal_polygon_contour(x, y, theta, width, length): function interplating_polyline (line 33) | def interplating_polyline(polylines, heading, distance=0.5, split_distac... function average_distance_vectorized (line 117) | def average_distance_vectorized(point_set1, centroids): function assign_clusters (line 122) | def assign_clusters(sub_X, centroids): class TokenProcessor (line 127) | class TokenProcessor: method __init__ (line 129) | def __init__(self, token_size): method preprocess (line 140) | def preprocess(self, data): method get_trajectory_token (line 150) | def get_trajectory_token(self): method clean_heading (line 171) | def clean_heading(self, data): method tokenize_agent (line 195) | def tokenize_agent(self, data): method match_token (line 295) | def match_token(self, pos, valid_mask, heading, category, agent_catego... method tokenize_map (line 403) | def tokenize_map(self, data): FILE: smart/datasets/scalable_dataset.py function distance (line 11) | def distance(point1, point2): class MultiDataset (line 15) | class MultiDataset(Dataset): method __init__ (line 16) | def __init__(self, method raw_dir (line 66) | def raw_dir(self) -> str: method raw_paths (line 70) | def raw_paths(self) -> List[str]: method raw_file_names (line 74) | def raw_file_names(self) -> Union[str, List[str], Tuple]: method processed_file_names (line 78) | def processed_file_names(self) -> Union[str, List[str], Tuple]: method len (line 81) | def len(self) -> int: method generate_ref_token (line 84) | def generate_ref_token(self): method get (line 87) | def get(self, idx: int): FILE: smart/layers/attention_layer.py class AttentionLayer (line 12) | class AttentionLayer(MessagePassing): method __init__ (line 14) | def __init__(self, method forward (line 57) | def forward(self, method message (line 74) | def message(self, method update (line 90) | def update(self, method _attn_block (line 97) | def _attn_block(self, method _ff_block (line 108) | def _ff_block(self, x: torch.Tensor) -> torch.Tensor: FILE: smart/layers/fourier_embedding.py class FourierEmbedding (line 9) | class FourierEmbedding(nn.Module): method __init__ (line 11) | def __init__(self, method forward (line 35) | def forward(self, class MLPEmbedding (line 56) | class MLPEmbedding(nn.Module): method __init__ (line 57) | def __init__(self, method forward (line 73) | def forward(self, FILE: smart/layers/mlp_layer.py class MLPLayer (line 8) | class MLPLayer(nn.Module): method __init__ (line 10) | def __init__(self, method forward (line 23) | def forward(self, x: torch.Tensor) -> torch.Tensor: FILE: smart/metrics/average_meter.py class AverageMeter (line 6) | class AverageMeter(Metric): method __init__ (line 8) | def __init__(self, **kwargs) -> None: method update (line 13) | def update(self, val: torch.Tensor) -> None: method compute (line 17) | def compute(self) -> torch.Tensor: FILE: smart/metrics/min_ade.py class minMultiADE (line 11) | class minMultiADE(Metric): method __init__ (line 13) | def __init__(self, method update (line 21) | def update(self, method compute (line 44) | def compute(self) -> torch.Tensor: class minADE (line 48) | class minADE(Metric): method __init__ (line 50) | def __init__(self, method update (line 59) | def update(self, method compute (line 84) | def compute(self) -> torch.Tensor: FILE: smart/metrics/min_fde.py class minMultiFDE (line 10) | class minMultiFDE(Metric): method __init__ (line 12) | def __init__(self, method update (line 20) | def update(self, method compute (line 34) | def compute(self) -> torch.Tensor: class minFDE (line 38) | class minFDE(Metric): method __init__ (line 40) | def __init__(self, method update (line 49) | def update(self, method compute (line 60) | def compute(self) -> torch.Tensor: FILE: smart/metrics/next_token_cls.py class TokenCls (line 10) | class TokenCls(Metric): method __init__ (line 12) | def __init__(self, method update (line 20) | def update(self, method compute (line 29) | def compute(self) -> torch.Tensor: FILE: smart/metrics/utils.py function topk (line 8) | def topk( function topkind (line 44) | def topkind( function valid_filter (line 80) | def valid_filter( function new_batch_nms (line 108) | def new_batch_nms(pred_trajs, dist_thresh, num_ret_modes=6): function batch_nms (line 163) | def batch_nms(pred_trajs, pred_scores, function batch_nms_token (line 224) | def batch_nms_token(pred_trajs, pred_scores, FILE: smart/model/smart.py function cal_polygon_contour (line 20) | def cal_polygon_contour(x, y, theta, width, length): function joint_scene_from_states (line 41) | def joint_scene_from_states(states, object_ids) -> sim_agents_submission... class SMART (line 53) | class SMART(pl.LightningModule): method __init__ (line 55) | def __init__(self, model_config) -> None: method get_trajectory_token (line 106) | def get_trajectory_token(self): method init_map_token (line 113) | def init_map_token(self): method forward (line 124) | def forward(self, data: HeteroData): method inference (line 128) | def inference(self, data: HeteroData): method maybe_autocast (line 132) | def maybe_autocast(self, dtype=torch.float16): method training_step (line 140) | def training_step(self, method validation_step (line 157) | def validation_step(self, method on_validation_start (line 199) | def on_validation_start(self): method configure_optimizers (line 205) | def configure_optimizers(self): method load_params_from_file (line 218) | def load_params_from_file(self, filename, logger, to_cpu=False): method match_token_map (line 257) | def match_token_map(self, data): method sample_pt_pred (line 321) | def sample_pt_pred(self, data): FILE: smart/modules/agent_decoder.py function cal_polygon_contour (line 15) | def cal_polygon_contour(x, y, theta, width, length): class SMARTAgentDecoder (line 36) | class SMARTAgentDecoder(nn.Module): method __init__ (line 38) | def __init__(self, method transform_rel (line 110) | def transform_rel(self, token_traj, prev_pos, prev_heading=None): method agent_token_embedding (line 126) | def agent_token_embedding(self, data, agent_category, agent_token_inde... method agent_predict_next (line 194) | def agent_predict_next(self, data, agent_category, feat_a): method agent_predict_next_inf (line 206) | def agent_predict_next_inf(self, data, agent_category, feat_a): method build_temporal_edge (line 221) | def build_temporal_edge(self, pos_a, head_a, head_vector_a, num_agent,... method build_interaction_edge (line 249) | def build_interaction_edge(self, pos_a, head_a, head_vector_a, batch_s... method build_map2agent_edge (line 265) | def build_map2agent_edge(self, data, num_step, agent_category, pos_a, ... method forward (line 288) | def forward(self, method inference (line 351) | def inference(self, FILE: smart/modules/map_decoder.py class SMARTMapDecoder (line 20) | class SMARTMapDecoder(nn.Module): method __init__ (line 22) | def __init__(self, method maybe_autocast (line 73) | def maybe_autocast(self, dtype=torch.float32): method forward (line 76) | def forward(self, data: HeteroData) -> Dict[str, torch.Tensor]: FILE: smart/modules/smart_decoder.py class SMARTDecoder (line 9) | class SMARTDecoder(nn.Module): method __init__ (line 11) | def __init__(self, method forward (line 62) | def forward(self, data: HeteroData) -> Dict[str, torch.Tensor]: method inference (line 67) | def inference(self, data: HeteroData) -> Dict[str, torch.Tensor]: method inference_no_map (line 72) | def inference_no_map(self, data: HeteroData, map_enc) -> Dict[str, tor... FILE: smart/preprocess/preprocess.py function get_agent_features (line 44) | def get_agent_features(df: pd.DataFrame, av_id, num_historical_steps=10,... FILE: smart/transforms/target_builder.py function to_16 (line 10) | def to_16(data): function tofloat32 (line 21) | def tofloat32(data): class WaymoTargetBuilder (line 32) | class WaymoTargetBuilder(BaseTransform): method __init__ (line 34) | def __init__(self, method score_ego_agent (line 45) | def score_ego_agent(self, agent): method clip (line 50) | def clip(self, agent, max_num=32): method score_nearby_vehicle (line 79) | def score_nearby_vehicle(self, agent, max_num=10): method score_trained_vehicle (line 93) | def score_trained_vehicle(self, agent, max_num=10, min_distance=0): method rotate_agents (line 117) | def rotate_agents(self, position, heading, num_nodes, num_historical_s... method __call__ (line 148) | def __call__(self, data) -> HeteroData: FILE: smart/utils/cluster_reader.py class LoadScenarioFromCeph (line 7) | class LoadScenarioFromCeph: method __init__ (line 8) | def __init__(self): method list (line 12) | def list(self, dir_path): method save (line 15) | def save(self, data, url): method read_correct_csv (line 18) | def read_correct_csv(self, scenario_path): method contains (line 22) | def contains(self, url): method read_string (line 25) | def read_string(self, csv_url): method read (line 30) | def read(self, scenario_path): method read_json (line 35) | def read_json(self, path): method read_csv (line 40) | def read_csv(self, scenario_path): method read_model (line 43) | def read_model(self, model_path): FILE: smart/utils/config.py function load_config_act (line 6) | def load_config_act(path): function load_config_init (line 13) | def load_config_init(path): FILE: smart/utils/geometry.py function angle_between_2d_vectors (line 7) | def angle_between_2d_vectors( function angle_between_3d_vectors (line 14) | def angle_between_3d_vectors( function side_to_directed_lineseg (line 21) | def side_to_directed_lineseg( function wrap_angle (line 35) | def wrap_angle( FILE: smart/utils/graph.py function add_edges (line 9) | def add_edges( function merge_edges (line 33) | def merge_edges( function complete_graph (line 45) | def complete_graph( function bipartite_dense_to_sparse (line 76) | def bipartite_dense_to_sparse(adj: torch.Tensor) -> torch.Tensor: function unbatch (line 85) | def unbatch( FILE: smart/utils/list.py function safe_list_index (line 5) | def safe_list_index(ls: List[Any], elem: Any) -> Optional[int]: FILE: smart/utils/log.py class Logging (line 6) | class Logging: method make_log_dir (line 8) | def make_log_dir(self, dirname='logs'): method get_log_filename (line 16) | def get_log_filename(self): method log (line 22) | def log(self, level='DEBUG', name="simagent"): method add_log (line 36) | def add_log(self, logger, level='DEBUG'): FILE: smart/utils/nan_checker.py function check_nan_inf (line 3) | def check_nan_inf(t, s): FILE: smart/utils/weight_init.py function weight_init (line 5) | def weight_init(m: nn.Module) -> None: