{"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/on-the-road-to-portability-compressing-end-to","title":"On the Road to Portability: Compressing End-to-End Motion Planner for Autonomous Driving","arxiv_id":"2403.01238","date":"2024-03-02","proceeding":"CVPR 2024 1","authors":["Kaituo Feng","Changsheng Li","Dongchun Ren","Ye Yuan","Guoren Wang"],"abstract":"End-to-end motion planning models equipped with deep neural networks have shown great potential for enabling full autonomous driving. However, the oversized neural networks render them impractical for deployment on resource-constrained systems, which unavoidably requires more computational time and resources during reference.To handle this, knowledge distillation offers a promising approach that compresses models by enabling a smaller student model to learn from a larger teacher model. Nevertheless, how to apply knowledge distillation to compress motion planners has not been explored so far. In this paper, we propose PlanKD, the first knowledge distillation framework tailored for compressing end-to-end motion planners. First, considering that driving scenes are inherently complex, often containing planning-irrelevant or even noisy information, transferring such information is not beneficial for the student planner. Thus, we design an information bottleneck based strategy to only distill planning-relevant information, rather than transfer all information indiscriminately. Second, different waypoints in an output planned trajectory may hold varying degrees of importance for motion planning, where a slight deviation in certain crucial waypoints might lead to a collision. Therefore, we devise a safety-aware waypoint-attentive distillation module that assigns adaptive weights to different waypoints based on the importance, to encourage the student to accurately mimic more crucial waypoints, thereby improving overall safety. Experiments demonstrate that our PlanKD can boost the performance of smaller planners by a large margin, and significantly reduce their reference time.","url_abs":"https://arxiv.org/abs/2403.01238v2","url_pdf":"https://arxiv.org/pdf/2403.01238v2.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":"on-the-road-to-portability-compressing-end-to","repo_url":"https://github.com/tulerfeng/PlanKD","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"autonomous-driving","task_name":"Autonomous Driving"},{"task_slug":"knowledge-distillation","task_name":"Knowledge Distillation"},{"task_slug":"motion-planning","task_name":"Motion Planning"}],"methods":[{"method_slug":"knowledge-distillation","method_name":"Knowledge Distillation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2403.01238","atlas_url":"https://app.syntology.ai/?focus=2403.01238","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.01238"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/tulerfeng/PlanKD","reach":null}],"summary":{"ran":6,"ran_draft_wrong":2,"unverified":6},"by_repo_kind":{"official":{"samples":14,"ran":8,"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":"09ca88933f8dc918","entry":"BasicBlock","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"09ca88933f8dc918"}},{"code_sha256_prefix":"4ebac9a1d0a5dad8","entry":"Bottleneck","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4ebac9a1d0a5dad8"}},{"code_sha256_prefix":"9bf278ffdef97464","entry":"IB_Discriminator","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9bf278ffdef97464"}},{"code_sha256_prefix":"18e74cea8c56feea","entry":"ResNet","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18e74cea8c56feea"}},{"code_sha256_prefix":"f3c6ceb76d67a413","entry":"ResNet6e","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f3c6ceb76d67a413"}},{"code_sha256_prefix":"6729323c64b5fc66","entry":"VIB","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6729323c64b5fc66"}},{"code_sha256_prefix":"50efec97e3cc12bc","entry":"conv1x1","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"50efec97e3cc12bc"}},{"code_sha256_prefix":"7e98e1d315e2ea27","entry":"conv3x3","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7e98e1d315e2ea27"}},{"code_sha256_prefix":"e0d1234cc273909f","entry":"PlanKD","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e0d1234cc273909f"}},{"code_sha256_prefix":"72009193bf0cb290","entry":"ResNet6","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"72009193bf0cb290"}},{"code_sha256_prefix":"560c35974fb4e7cb","entry":"ResNet6d","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"560c35974fb4e7cb"}},{"code_sha256_prefix":"14507f9b7e4dd825","entry":"WP_Attention","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"14507f9b7e4dd825"}},{"code_sha256_prefix":"f13d24d97f1619cd","entry":"_resnet","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f13d24d97f1619cd"}},{"code_sha256_prefix":"be020eedc530ae09","entry":"resnet6e","repo":"tulerfeng/PlanKD","repo_kind":"official","path":"interfuser/plankd.py","file_url":"https://github.com/tulerfeng/PlanKD/blob/HEAD/interfuser/plankd.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"be020eedc530ae09"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}