{"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/frameexit-conditional-early-exiting-for","title":"FrameExit: Conditional Early Exiting for Efficient Video Recognition","arxiv_id":"2104.13400","date":"2021-04-27","proceeding":"CVPR 2021 1","authors":["Amir Ghodrati","Babak Ehteshami Bejnordi","Amirhossein Habibian"],"abstract":"In this paper, we propose a conditional early exiting framework for efficient video recognition. While existing works focus on selecting a subset of salient frames to reduce the computation costs, we propose to use a simple sampling strategy combined with conditional early exiting to enable efficient recognition. Our model automatically learns to process fewer frames for simpler videos and more frames for complex ones. To achieve this, we employ a cascade of gating modules to automatically determine the earliest point in processing where an inference is sufficiently reliable. We generate on-the-fly supervision signals to the gates to provide a dynamic trade-off between accuracy and computational cost. Our proposed model outperforms competing methods on three large-scale video benchmarks. In particular, on ActivityNet1.3 and mini-kinetics, we outperform the state-of-the-art efficient video recognition methods with 1.3$\\times$ and 2.1$\\times$ less GFLOPs, respectively. Additionally, our method sets a new state of the art for efficient video understanding on the HVU benchmark.","url_abs":"https://arxiv.org/abs/2104.13400v1","url_pdf":"https://arxiv.org/pdf/2104.13400v1.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":"frameexit-conditional-early-exiting-for","repo_url":"https://github.com/Qualcomm-AI-research/FrameExit","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"video-recognition","task_name":"Video Recognition"},{"task_slug":"video-understanding","task_name":"Video Understanding"}],"methods":[{"method_slug":"early-exiting","method_name":"Early exiting"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.13400","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.13400"}},"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/Qualcomm-AI-research/FrameExit","reach":null}],"summary":{"ran":2,"ran_draft_wrong":4,"unverified":3},"by_repo_kind":{"official":{"samples":9,"ran":6,"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":9,"samples":[{"code_sha256_prefix":"1a2807fcd3a0cb83","entry":"MaxPooling","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"1a2807fcd3a0cb83"}},{"code_sha256_prefix":"3d0c6bbf0505d449","entry":"MultiLayerPerceptron","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"3d0c6bbf0505d449"}},{"code_sha256_prefix":"5af7fade39f51e3e","entry":"execute_exiting","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"5af7fade39f51e3e"}},{"code_sha256_prefix":"833518687587ac53","entry":"get_base_model","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"833518687587ac53"}},{"code_sha256_prefix":"88ae323717656167","entry":"get_torchvision_model","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"88ae323717656167"}},{"code_sha256_prefix":"2761b23b4ded715e","entry":"threshold_selection","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"2761b23b4ded715e"}},{"code_sha256_prefix":"fb235c4104fb0280","entry":"AdaptiveBase","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.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-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"fb235c4104fb0280"}},{"code_sha256_prefix":"81e0b0a461a801cb","entry":"ConditionalFrameExitInferenceModel","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.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-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"81e0b0a461a801cb"}},{"code_sha256_prefix":"bd24ebc03fc4bf8a","entry":"ExitingGate","repo":"Qualcomm-AI-research/FrameExit","repo_kind":"official","path":"model/adaptive_models.py","file_url":"https://github.com/Qualcomm-AI-research/FrameExit/blob/HEAD/model/adaptive_models.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-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"bd24ebc03fc4bf8a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}