{"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/protect-prompt-tuning-for-hierarchical","title":"ProTeCt: Prompt Tuning for Taxonomic Open Set Classification","arxiv_id":"2306.02240","date":"2023-06-04","proceeding":"CVPR 2024 1","authors":["Tz-Ying Wu","Chih-Hui Ho","Nuno Vasconcelos"],"abstract":"Visual-language foundation models, like CLIP, learn generalized representations that enable zero-shot open-set classification. Few-shot adaptation methods, based on prompt tuning, have been shown to further improve performance on downstream datasets. However, these methods do not fare well in the taxonomic open set (TOS) setting, where the classifier is asked to make predictions from label sets across different levels of semantic granularity. Frequently, they infer incorrect labels at coarser taxonomic class levels, even when the inference at the leaf level (original class labels) is correct. To address this problem, we propose a prompt tuning technique that calibrates the hierarchical consistency of model predictions. A set of metrics of hierarchical consistency, the Hierarchical Consistent Accuracy (HCA) and the Mean Treecut Accuracy (MTA), are first proposed to evaluate TOS model performance. A new Prompt Tuning for Hierarchical Consistency (ProTeCt) technique is then proposed to calibrate classification across label set granularities. Results show that ProTeCt can be combined with existing prompt tuning methods to significantly improve TOS classification without degrading the leaf level classification performance.","url_abs":"https://arxiv.org/abs/2306.02240v2","url_pdf":"https://arxiv.org/pdf/2306.02240v2.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":"protect-prompt-tuning-for-hierarchical","repo_url":"https://github.com/gina9726/protect","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"classification-1","task_name":"Classification"},{"task_slug":"open-set-classification","task_name":"open-set classification"}],"methods":[{"method_slug":"clip","method_name":"CLIP"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.02240","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.02240"}},"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/gina9726/protect","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":9},"by_repo_kind":{"official":{"samples":10,"ran":1,"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":"fac5364e2f53c6db","entry":"conv3x3","repo":"gina9726/protect","repo_kind":"official","path":"models/resnet.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/models/resnet.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":"fac5364e2f53c6db"}},{"code_sha256_prefix":"5c74f3d4d8de1709","entry":"bin_accuracy","repo":"gina9726/protect","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/metrics.py","link_basis":"harvester_set","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":"5c74f3d4d8de1709"}},{"code_sha256_prefix":"48ac2bd4dcbfb717","entry":"build_model","repo":"gina9726/protect","repo_kind":"official","path":"models/maple_model.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/models/maple_model.py","link_basis":"harvester_set","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":"48ac2bd4dcbfb717"}},{"code_sha256_prefix":"39e6b23b55f376ea","entry":"build_model","repo":"gina9726/protect","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/models/model.py","link_basis":"harvester_set","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":"39e6b23b55f376ea"}},{"code_sha256_prefix":"fbf8c0143d9c48e3","entry":"load","repo":"gina9726/protect","repo_kind":"official","path":"models/maple_clip.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/models/maple_clip.py","link_basis":"harvester_set","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":"fbf8c0143d9c48e3"}},{"code_sha256_prefix":"412a341011ed7bc6","entry":"load","repo":"gina9726/protect","repo_kind":"official","path":"models/clip.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/models/clip.py","link_basis":"harvester_set","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":"412a341011ed7bc6"}},{"code_sha256_prefix":"19396769960257b8","entry":"multilabel_accuracy","repo":"gina9726/protect","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/metrics.py","link_basis":"harvester_set","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":"19396769960257b8"}},{"code_sha256_prefix":"14ccaddf12f0d88e","entry":"percls_accuracy","repo":"gina9726/protect","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/metrics.py","link_basis":"harvester_set","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":"14ccaddf12f0d88e"}},{"code_sha256_prefix":"443ac1f13d5be170","entry":"resnet10","repo":"gina9726/protect","repo_kind":"official","path":"models/resnet.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/models/resnet.py","link_basis":"harvester_set","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":"443ac1f13d5be170"}},{"code_sha256_prefix":"68f6f193ddf345ff","entry":"resnet18","repo":"gina9726/protect","repo_kind":"official","path":"models/resnet.py","file_url":"https://github.com/gina9726/protect/blob/HEAD/models/resnet.py","link_basis":"harvester_set","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":"68f6f193ddf345ff"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}