{"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/ez-clip-efficient-zeroshot-video-action","title":"EZ-CLIP: Efficient Zeroshot Video Action Recognition","arxiv_id":"2312.08010","date":"2023-12-13","proceeding":null,"authors":["Shahzad Ahmad","Sukalpa Chanda","Yogesh S Rawat"],"abstract":"Recent advancements in large-scale pre-training of visual-language models on paired image-text data have demonstrated impressive generalization capabilities for zero-shot tasks. Building on this success, efforts have been made to adapt these image-based visual-language models, such as CLIP, for videos extending their zero-shot capabilities to the video domain. While these adaptations have shown promising results, they come at a significant computational cost and struggle with effectively modeling the crucial temporal aspects inherent to the video domain. In this study, we present EZ-CLIP, a simple and efficient adaptation of CLIP that addresses these challenges. EZ-CLIP leverages temporal visual prompting for seamless temporal adaptation, requiring no fundamental alterations to the core CLIP architecture while preserving its remarkable generalization abilities. Moreover, we introduce a novel learning objective that guides the temporal visual prompts to focus on capturing motion, thereby enhancing its learning capabilities from video data. We conducted extensive experiments on five different benchmark datasets, thoroughly evaluating EZ-CLIP for zero-shot learning and base-to-novel video action recognition, and also demonstrating its potential for few-shot generalization.Impressively, with a mere 5.2 million learnable parameters (as opposed to the 71.1 million in the prior best model), EZ-CLIP can be efficiently trained on a single GPU, outperforming existing approaches in several evaluations.","url_abs":"https://arxiv.org/abs/2312.08010v2","url_pdf":"https://arxiv.org/pdf/2312.08010v2.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":"ez-clip-efficient-zeroshot-video-action","repo_url":"https://github.com/shahzadnit/ez-clip","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"action-recognition-in-videos","task_name":"Action Recognition"},{"task_slug":null,"task_name":"GPU"},{"task_slug":"action-recognition","task_name":"Temporal Action Localization"},{"task_slug":"visual-prompting","task_name":"Visual Prompting"},{"task_slug":"zero-shot-action-recognition","task_name":"Zero-Shot Action Recognition"},{"task_slug":"zero-shot-learning","task_name":"Zero-Shot Learning"}],"methods":[{"method_slug":"clip","method_name":"CLIP"},{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/zero-shot-action-recognition-on-ucf101","task":"Zero-Shot Action Recognition","dataset":"UCF101","model":"EZ-CLIP","rank_in_archive_order":11,"of":35,"metrics":{"Top-1 Accuracy":"79.1"},"uses_additional_data":true}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.08010","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.08010"}},"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/shahzadnit/ez-clip","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":4,"ran_fixture":1,"ran":4,"unverified":4},"by_repo_kind":{"official":{"samples":13,"ran":9,"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":"98f385d847636a3e","entry":"basic_clean","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/clip/simple_tokenizer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"98f385d847636a3e"}},{"code_sha256_prefix":"3ac6b7d76e8e3584","entry":"drop_path","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"clip/model.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/clip/model.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3ac6b7d76e8e3584"}},{"code_sha256_prefix":"fe803eb0c1276891","entry":"fixed_patch","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"modules/prompters.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/modules/prompters.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fe803eb0c1276891"}},{"code_sha256_prefix":"d919ae32e5e4e616","entry":"get_pairs","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/clip/simple_tokenizer.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d919ae32e5e4e616"}},{"code_sha256_prefix":"b32a7826dc4c1939","entry":"padding","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"modules/prompters.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/modules/prompters.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b32a7826dc4c1939"}},{"code_sha256_prefix":"9c9c401fc5d4adf7","entry":"print_time","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"train_base_to_novel.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/train_base_to_novel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9c9c401fc5d4adf7"}},{"code_sha256_prefix":"5debe27f7868e61c","entry":"random_patch","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"modules/prompters.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/modules/prompters.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5debe27f7868e61c"}},{"code_sha256_prefix":"5cb5985f521b3573","entry":"trunc_normal_","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"modules/Visual_Prompt.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/modules/Visual_Prompt.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5cb5985f521b3573"}},{"code_sha256_prefix":"9542161e9640b858","entry":"whitespace_clean","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/clip/simple_tokenizer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9542161e9640b858"}},{"code_sha256_prefix":"9505aef5443f0743","entry":"build_model","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"clip/model.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/clip/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9505aef5443f0743"}},{"code_sha256_prefix":"5c8f57e83614642d","entry":"dump_frames","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"Dataset_creation_scripts/data_creation_kinetic-400.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/Dataset_creation_scripts/data_creation_kinetic-400.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5c8f57e83614642d"}},{"code_sha256_prefix":"ea4ec5d9601fa229","entry":"generate_triplet_samples","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"train_base_to_novel.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/train_base_to_novel.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ea4ec5d9601fa229"}},{"code_sha256_prefix":"4414ea60788c64a8","entry":"load","repo":"shahzadnit/ez-clip","repo_kind":"official","path":"clip/clip.py","file_url":"https://github.com/shahzadnit/ez-clip/blob/HEAD/clip/clip.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4414ea60788c64a8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}