{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/latent-variable-nested-set-transformers","title":"Latent Variable Sequential Set Transformers For Joint Multi-Agent Motion Prediction","arxiv_id":"2104.00563","date":"2021-02-19","proceeding":"ICLR 2022 4","authors":["Roger Girgis","Florian Golemo","Felipe Codevilla","Martin Weiss","Jim Aldon D'Souza","Samira Ebrahimi Kahou","Felix Heide","Christopher Pal"],"abstract":"Robust multi-agent trajectory prediction is essential for the safe control of robotic systems. A major challenge is to efficiently learn a representation that approximates the true joint distribution of contextual, social, and temporal information to enable planning. We propose Latent Variable Sequential Set Transformers which are encoder-decoder architectures that generate scene-consistent multi-agent trajectories. We refer to these architectures as \"AutoBots\". The encoder is a stack of interleaved temporal and social multi-head self-attention (MHSA) modules which alternately perform equivariant processing across the temporal and social dimensions. The decoder employs learnable seed parameters in combination with temporal and social MHSA modules allowing it to perform inference over the entire future scene in a single forward pass efficiently. AutoBots can produce either the trajectory of one ego-agent or a distribution over the future trajectories for all agents in the scene. For the single-agent prediction case, our model achieves top results on the global nuScenes vehicle motion prediction leaderboard, and produces strong results on the Argoverse vehicle prediction challenge. In the multi-agent setting, we evaluate on the synthetic partition of TrajNet++ dataset to showcase the model's socially-consistent predictions. We also demonstrate our model on general sequences of sets and provide illustrative experiments modelling the sequential structure of the multiple strokes that make up symbols in the Omniglot data. A distinguishing feature of AutoBots is that all models are trainable on a single desktop GPU (1080 Ti) in under 48h.","url_abs":"https://arxiv.org/abs/2104.00563v3","url_pdf":"https://arxiv.org/pdf/2104.00563v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"latent-variable-nested-set-transformers","repo_url":"https://github.com/roggirg/AutoBots","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"latent-variable-nested-set-transformers","repo_url":"https://github.com/vita-epfl/unitraj","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"autonomous-driving","task_name":"Autonomous Driving"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":null,"task_name":"GPU"},{"task_slug":"prediction","task_name":"Prediction"},{"task_slug":"trajectory-modeling","task_name":"Trajectory Modeling"},{"task_slug":"trajectory-prediction","task_name":"Trajectory Prediction"},{"task_slug":"motion-prediction","task_name":"motion prediction"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"set-transformer","method_name":"Set Transformer"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.00563","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.00563"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/roggirg/AutoBots","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/vita-epfl/unitraj","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran_draft_wrong":1,"ran":1,"unverified":15},"by_repo_kind":{"official":{"samples":17,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"9de355e93051e4ad","entry":"init","repo":"roggirg/AutoBots","repo_kind":"official","path":"models/autobot_joint.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/models/autobot_joint.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"9de355e93051e4ad"}},{"code_sha256_prefix":"d7a51202f8456490","entry":"init","repo":"roggirg/AutoBots","repo_kind":"official","path":"models/autobot_ego.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/models/autobot_ego.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d7a51202f8456490"}},{"code_sha256_prefix":"db4fd23bb7142d4b","entry":"angle_of_rotation","repo":"roggirg/AutoBots","repo_kind":"official","path":"datasets/argoverse/create_h5_argo.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/datasets/argoverse/create_h5_argo.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"db4fd23bb7142d4b"}},{"code_sha256_prefix":"4efe4a6acb3051fb","entry":"convert_global_coords_to_local","repo":"roggirg/AutoBots","repo_kind":"official","path":"datasets/argoverse/create_h5_argo.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/datasets/argoverse/create_h5_argo.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"4efe4a6acb3051fb"}},{"code_sha256_prefix":"b61e662d9f8a3be9","entry":"create_results_folder","repo":"roggirg/AutoBots","repo_kind":"official","path":"process_args.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/process_args.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"b61e662d9f8a3be9"}},{"code_sha256_prefix":"3dba06ecf04eff9a","entry":"drop_distant","repo":"roggirg/AutoBots","repo_kind":"official","path":"datasets/trajnetpp/create_data_npys.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/datasets/trajnetpp/create_data_npys.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3dba06ecf04eff9a"}},{"code_sha256_prefix":"577c3685905bbabc","entry":"drop_inactive","repo":"roggirg/AutoBots","repo_kind":"official","path":"datasets/trajnetpp/create_data_npys.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/datasets/trajnetpp/create_data_npys.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"577c3685905bbabc"}},{"code_sha256_prefix":"519ae373e4e4d7cd","entry":"get_BVG_distributions","repo":"roggirg/AutoBots","repo_kind":"official","path":"utils/train_helpers.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/utils/train_helpers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"519ae373e4e4d7cd"}},{"code_sha256_prefix":"5112337a26b088f3","entry":"get_Laplace_dist","repo":"roggirg/AutoBots","repo_kind":"official","path":"utils/train_helpers.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/utils/train_helpers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5112337a26b088f3"}},{"code_sha256_prefix":"4e0c5fccd80c3976","entry":"interpolate_trajectories","repo":"roggirg/AutoBots","repo_kind":"official","path":"utils/metric_helpers.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/utils/metric_helpers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"4e0c5fccd80c3976"}},{"code_sha256_prefix":"3eb3d4a61fbb224d","entry":"load_config","repo":"roggirg/AutoBots","repo_kind":"official","path":"process_args.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/process_args.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3eb3d4a61fbb224d"}},{"code_sha256_prefix":"cd4282007f2ad836","entry":"make_2d_rotation_matrix","repo":"roggirg/AutoBots","repo_kind":"official","path":"datasets/argoverse/create_h5_argo.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/datasets/argoverse/create_h5_argo.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"cd4282007f2ad836"}},{"code_sha256_prefix":"b10ff2bd7a695f93","entry":"min_xde_K","repo":"roggirg/AutoBots","repo_kind":"official","path":"utils/metric_helpers.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/utils/metric_helpers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"b10ff2bd7a695f93"}},{"code_sha256_prefix":"2e9627477244b6e9","entry":"nll_pytorch_dist","repo":"roggirg/AutoBots","repo_kind":"official","path":"utils/train_helpers.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/utils/train_helpers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2e9627477244b6e9"}},{"code_sha256_prefix":"29e4fbe72133e718","entry":"recompute_probs","repo":"roggirg/AutoBots","repo_kind":"official","path":"useful_scripts/generate_nuscene_results.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/useful_scripts/generate_nuscene_results.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"29e4fbe72133e718"}},{"code_sha256_prefix":"1761d9ef84caa582","entry":"shift","repo":"roggirg/AutoBots","repo_kind":"official","path":"datasets/trajnetpp/create_data_npys.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/datasets/trajnetpp/create_data_npys.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"1761d9ef84caa582"}},{"code_sha256_prefix":"21100d7d06393031","entry":"yaw_from_predictions","repo":"roggirg/AutoBots","repo_kind":"official","path":"utils/metric_helpers.py","file_url":"https://github.com/roggirg/AutoBots/blob/HEAD/utils/metric_helpers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"21100d7d06393031"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}