sra-trajectory-code / LED /main_led_nba_graph.py
po03087's picture
SRA: MID/LED/MoFlow code + RUNNING.md instructions (code only, no data/ckpts)
d4cbafd verified
Raw
History Blame Contribute Delete
2.36 kB
import argparse
from trainer import train_led_graph as led
def parse_config():
parser = argparse.ArgumentParser()
parser.add_argument("--cuda", default=True)
parser.add_argument("--learning_rate", type=int, default=0.002)
parser.add_argument("--max_epochs", type=int, default=128)
parser.add_argument('--cfg', default='led_augment')
parser.add_argument('--gpu', type=int, default=0, help='Specify which GPU to use.')
parser.add_argument('--train', type=int, default=1, help='Whether train or evaluate.')
parser.add_argument("--info", type=str, default='graph', help='Name of the experiment. '
'It will be used in file creation.')
# Graph variant knobs.
parser.add_argument('--top_n', type=int, default=5,
help='Number of sparse neighbors per agent (max 10 for NBA with A=11).')
parser.add_argument('--residual_on', type=str, default='eps', choices=['eps', 'y0'],
help='Where to apply the graph residual: directly on epsilon, or '
'on the implied y_0 estimate (then re-projected to epsilon).')
parser.add_argument('--use_sigma', action='store_true',
help='If set, pass the initializer variance_estimation to the graph '
'as per-agent uncertainty (modulates node features and edges).')
parser.add_argument('--use_v6_graph', action='store_true',
help='If set, use MoFlow V6-style RAG-scoring graph (FutureInteractionGraphV6) '
'instead of the default hand-crafted distance-based graph.')
parser.add_argument('--uncertainty_weight', type=float, default=1.0,
help='Weight for uncertainty NLL loss. Set to 0 for nosigma ablation.')
parser.add_argument('--edge_mode', type=str, default='full',
choices=['full', 'dist_only', 'relpos_only', 'heading_only', 'vel_only', 'full_relvel'],
help='Edge feature mode for RelTrajEncoder ablation.')
parser.add_argument('--resume_epoch', type=int, default=0,
help='Resume from this checkpoint epoch (0=start fresh).')
parser.add_argument('--neighbor_mode', type=str, default='rag',
choices=['rag', 'l2', 'semantic'],
help='Neighbor selection: rag (semantic+geo), l2 (closest), or semantic (learned only)')
return parser.parse_args()
def main(config):
t = led.Trainer(config)
if config.train == 1:
t.fit()
else:
t.test_single_model()
if __name__ == "__main__":
config = parse_config()
main(config)