{"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/recurrent-complex-weighted-autoencoders-for","title":"Recurrent Complex-Weighted Autoencoders for Unsupervised Object Discovery","arxiv_id":"2405.17283","date":"2024-05-27","proceeding":null,"authors":["Anand Gopalakrishnan","Aleksandar Stanić","Jürgen Schmidhuber","Michael Curtis Mozer"],"abstract":"Current state-of-the-art synchrony-based models encode object bindings with complex-valued activations and compute with real-valued weights in feedforward architectures. We argue for the computational advantages of a recurrent architecture with complex-valued weights. We propose a fully convolutional autoencoder, SynCx, that performs iterative constraint satisfaction: at each iteration, a hidden layer bottleneck encodes statistically regular configurations of features in particular phase relationships; over iterations, local constraints propagate and the model converges to a globally consistent configuration of phase assignments. Binding is achieved simply by the matrix-vector product operation between complex-valued weights and activations, without the need for additional mechanisms that have been incorporated into current synchrony-based models. SynCx outperforms or is strongly competitive with current models for unsupervised object discovery. SynCx also avoids certain systematic grouping errors of current models, such as the inability to separate similarly colored objects without additional supervision.","url_abs":"https://arxiv.org/abs/2405.17283v3","url_pdf":"https://arxiv.org/pdf/2405.17283v3.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":"recurrent-complex-weighted-autoencoders-for","repo_url":"https://github.com/agopal42/syncx","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"object","task_name":"Object"},{"task_slug":"object-discovery","task_name":"Object Discovery"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.17283","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.17283"}},"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/agopal42/syncx","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":9,"ran_honours":2,"ran_draft_wrong":2,"unverified":3},"by_repo_kind":{"official":{"samples":16,"ran":13,"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":"420dc4b93ae15162","entry":"build_grid","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_general.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_general.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":"420dc4b93ae15162"}},{"code_sha256_prefix":"8ea0bda611c212f0","entry":"clip_and_rescale","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_eval.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_eval.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":"8ea0bda611c212f0"}},{"code_sha256_prefix":"6d8ef248dfd50c0e","entry":"color_hex_to_float","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_plot.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_plot.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6d8ef248dfd50c0e"}},{"code_sha256_prefix":"0f73b6f5607dbfc0","entry":"color_hex_to_int","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_plot.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_plot.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0f73b6f5607dbfc0"}},{"code_sha256_prefix":"4135588a7f2efd68","entry":"create_recursive_dot_dict","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_args.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_args.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":"4135588a7f2efd68"}},{"code_sha256_prefix":"bdcda64d659d5156","entry":"get_rotation_bias","repo":"agopal42/syncx","repo_kind":"official","path":"models/rf_model.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/models/rf_model.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":"bdcda64d659d5156"}},{"code_sha256_prefix":"45b0a74412afe03e","entry":"init_conv_norms","repo":"agopal42/syncx","repo_kind":"official","path":"models/rf_model.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/models/rf_model.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":"45b0a74412afe03e"}},{"code_sha256_prefix":"db821bac4c987d52","entry":"init_rotation_bias","repo":"agopal42/syncx","repo_kind":"official","path":"models/rf_model.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/models/rf_model.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":"db821bac4c987d52"}},{"code_sha256_prefix":"907fb9dac0a14f26","entry":"none_parser","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_args.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_args.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":"907fb9dac0a14f26"}},{"code_sha256_prefix":"f53d25628716495f","entry":"phase_to_cartesian_coordinates","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_eval.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_eval.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":"f53d25628716495f"}},{"code_sha256_prefix":"66b2cb5c5bbb76bc","entry":"sinusoidal_pe_2d","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_general.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_general.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":"66b2cb5c5bbb76bc"}},{"code_sha256_prefix":"f10f65f89cbbf0d1","entry":"spherical_to_cartesian_coordinates","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_eval.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_eval.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":"f10f65f89cbbf0d1"}},{"code_sha256_prefix":"480c6f952b1df32e","entry":"tensor_to_wandb_image","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_plot.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_plot.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":"480c6f952b1df32e"}},{"code_sha256_prefix":"305420f9f64aa31a","entry":"adjusted_rand_index","repo":"agopal42/syncx","repo_kind":"official","path":"utils/utils_general.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/utils/utils_general.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":"305420f9f64aa31a"}},{"code_sha256_prefix":"c770991e72d3912d","entry":"get_dataloader","repo":"agopal42/syncx","repo_kind":"official","path":"data.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/data.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":"c770991e72d3912d"}},{"code_sha256_prefix":"c6a3c2a8e6027c7f","entry":"random_split","repo":"agopal42/syncx","repo_kind":"official","path":"data.py","file_url":"https://github.com/agopal42/syncx/blob/HEAD/data.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":"c6a3c2a8e6027c7f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}