{"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/towards-backward-compatible-representation","title":"Towards Backward-Compatible Representation Learning","arxiv_id":"2003.11942","date":"2020-03-26","proceeding":"CVPR 2020 6","authors":["Yantao Shen","Yuanjun Xiong","Wei Xia","Stefano Soatto"],"abstract":"We propose a way to learn visual features that are compatible with previously computed ones even when they have different dimensions and are learned via different neural network architectures and loss functions. Compatible means that, if such features are used to compare images, then \"new\" features can be compared directly to \"old\" features, so they can be used interchangeably. This enables visual search systems to bypass computing new features for all previously seen images when updating the embedding models, a process known as backfilling. Backward compatibility is critical to quickly deploy new embedding models that leverage ever-growing large-scale training datasets and improvements in deep learning architectures and training methods. We propose a framework to train embedding models, called backward-compatible training (BCT), as a first step towards backward compatible representation learning. In experiments on learning embeddings for face recognition, models trained with BCT successfully achieve backward compatibility without sacrificing accuracy, thus enabling backfill-free model updates of visual embeddings.","url_abs":"https://arxiv.org/abs/2003.11942v3","url_pdf":"https://arxiv.org/pdf/2003.11942v3.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":"towards-backward-compatible-representation","repo_url":"https://github.com/YantaoShen/openBCT","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"towards-backward-compatible-representation","repo_url":"https://github.com/ivclab/cvs","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"towards-backward-compatible-representation","repo_url":"https://github.com/yifeizhou02/bt-2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"face-recognition","task_name":"Face Recognition"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2003.11942","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.11942"}},"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/YantaoShen/openBCT","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ivclab/cvs","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yifeizhou02/bt-2","reach":{"status":"ok"}}],"summary":{"ran":1,"ran_draft_wrong":4,"unverified":5},"by_repo_kind":{"official":{"samples":4,"ran":1,"repositories":1},"listed":{"samples":4,"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":6,"samples":[{"code_sha256_prefix":"8c01dd7b393828af","entry":"Backbone","repo":"yifeizhou02/bt-2","repo_kind":"listed","path":"models/resnet.py","file_url":"https://github.com/yifeizhou02/bt-2/blob/HEAD/models/resnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c01dd7b393828af"}},{"code_sha256_prefix":"7042cceeb8b775f7","entry":"BackboneBase","repo":"yifeizhou02/bt-2","repo_kind":"listed","path":"models/resnet.py","file_url":"https://github.com/yifeizhou02/bt-2/blob/HEAD/models/resnet.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7042cceeb8b775f7"}},{"code_sha256_prefix":"d9def42110729a85","entry":"conv1x1","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"d9def42110729a85"}},{"code_sha256_prefix":"160bb14bd76201b4","entry":"conv3x3","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"160bb14bd76201b4"}},{"code_sha256_prefix":"c0222e52bce8b04b","entry":"pairwise_distance","repo":"YantaoShen/openBCT","repo_kind":"official","path":"evaluate/evaluators.py","file_url":"https://github.com/YantaoShen/openBCT/blob/HEAD/evaluate/evaluators.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c0222e52bce8b04b"}},{"code_sha256_prefix":"13331140f536b0c4","entry":"ResNet","repo":"YantaoShen/openBCT","repo_kind":"official","path":"models/resnet.py","file_url":"https://github.com/YantaoShen/openBCT/blob/HEAD/models/resnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"13331140f536b0c4"}},{"code_sha256_prefix":"939bbcedb1825b72","entry":"ResNet","repo":"yifeizhou02/bt-2","repo_kind":"listed","path":"models/resnet.py","file_url":"https://github.com/yifeizhou02/bt-2/blob/HEAD/models/resnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"939bbcedb1825b72"}},{"code_sha256_prefix":"f9a93c8d455dcd45","entry":"ResNet_ortho","repo":"yifeizhou02/bt-2","repo_kind":"listed","path":"models/resnet.py","file_url":"https://github.com/yifeizhou02/bt-2/blob/HEAD/models/resnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f9a93c8d455dcd45"}},{"code_sha256_prefix":"3e614bd12e5eada6","entry":"evaluate_all","repo":"YantaoShen/openBCT","repo_kind":"official","path":"evaluate/evaluators.py","file_url":"https://github.com/YantaoShen/openBCT/blob/HEAD/evaluate/evaluators.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3e614bd12e5eada6"}},{"code_sha256_prefix":"3ea19c97f450c87a","entry":"resnet18","repo":"YantaoShen/openBCT","repo_kind":"official","path":"models/resnet.py","file_url":"https://github.com/YantaoShen/openBCT/blob/HEAD/models/resnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3ea19c97f450c87a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}