{"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/duet-2d-structured-and-approximately","title":"DUET: 2D Structured and Approximately Equivariant Representations","arxiv_id":"2306.16058","date":"2023-06-28","proceeding":null,"authors":["Xavier Suau","Federico Danieli","T. Anderson Keller","Arno Blaas","Chen Huang","Jason Ramapuram","Dan Busbridge","Luca Zappella"],"abstract":"Multiview Self-Supervised Learning (MSSL) is based on learning invariances with respect to a set of input transformations. However, invariance partially or totally removes transformation-related information from the representations, which might harm performance for specific downstream tasks that require such information. We propose 2D strUctured and EquivarianT representations (coined DUET), which are 2d representations organized in a matrix structure, and equivariant with respect to transformations acting on the input data. DUET representations maintain information about an input transformation, while remaining semantically expressive. Compared to SimCLR (Chen et al., 2020) (unstructured and invariant) and ESSL (Dangovski et al., 2022) (unstructured and equivariant), the structured and equivariant nature of DUET representations enables controlled generation with lower reconstruction error, while controllability is not possible with SimCLR or ESSL. DUET also achieves higher accuracy for several discriminative tasks, and improves transfer learning.","url_abs":"https://arxiv.org/abs/2306.16058v3","url_pdf":"https://arxiv.org/pdf/2306.16058v3.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":"duet-2d-structured-and-approximately","repo_url":"https://github.com/apple/ml-duet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bottleneck-residual-block","method_name":"Bottleneck Residual Block"},{"method_slug":"colorjitter","method_name":"ColorJitter"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"feedforward-network","method_name":"Feedforward Network"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"kaiming-initialization","method_name":"Kaiming Initialization"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"nt-xent","method_name":"NT-Xent"},{"method_slug":"random-gaussian-blur","method_name":"Random Gaussian Blur"},{"method_slug":"random-resized-crop","method_name":"Random Resized Crop"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"simclr","method_name":"SimCLR"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.16058","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.16058"}},"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":"deterministic:regex_extraction","url":"https://github.com/apple/ml-duet","reach":null}],"summary":{"ran":7,"ran_draft_wrong":1,"ran_honours":1,"unverified":6},"by_repo_kind":{"official":{"samples":15,"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":15,"samples":[{"code_sha256_prefix":"1aae64bb00e30bb3","entry":"BatchNormND","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"1aae64bb00e30bb3"}},{"code_sha256_prefix":"c9aec5ed3baab71c","entry":"Cifar10_ResNet","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c9aec5ed3baab71c"}},{"code_sha256_prefix":"bf58dc5e02638b17","entry":"DUETLayer","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"bf58dc5e02638b17"}},{"code_sha256_prefix":"4f7e1c08346a6301","entry":"Identity","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4f7e1c08346a6301"}},{"code_sha256_prefix":"f83957353db97231","entry":"Squeezer","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"f83957353db97231"}},{"code_sha256_prefix":"931e09f1354d129a","entry":"View","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"931e09f1354d129a"}},{"code_sha256_prefix":"a313ad3859803c5d","entry":"aug_stack_from_codes","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.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":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"a313ad3859803c5d"}},{"code_sha256_prefix":"afd70c94caa641e9","entry":"dummy_context","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"afd70c94caa641e9"}},{"code_sha256_prefix":"0b1813f686bf9dbf","entry":"get_aug_params","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0b1813f686bf9dbf"}},{"code_sha256_prefix":"749d8932b36b065f","entry":"DUET","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"749d8932b36b065f"}},{"code_sha256_prefix":"99978a9ab1357a8c","entry":"ParamAugStack","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"99978a9ab1357a8c"}},{"code_sha256_prefix":"40f59c42fe51876f","entry":"RandomRotation90","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"40f59c42fe51876f"}},{"code_sha256_prefix":"6598676dc68f1a6f","entry":"SimCLR","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"6598676dc68f1a6f"}},{"code_sha256_prefix":"b966d756f19409ce","entry":"_weights_init","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"b966d756f19409ce"}},{"code_sha256_prefix":"35c5c984a6f6af3a","entry":"augment_safe","repo":"apple/ml-duet","repo_kind":"official","path":"duet/models/duet.py","file_url":"https://github.com/apple/ml-duet/blob/HEAD/duet/models/duet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"35c5c984a6f6af3a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}