{"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/explicitly-disentangling-image-content-from","title":"Explicitly disentangling image content from translation and rotation with spatial-VAE","arxiv_id":"1909.11663","date":"2019-09-25","proceeding":"NeurIPS 2019 12","authors":["Tristan Bepler","Ellen D. Zhong","Kotaro Kelley","Edward Brignole","Bonnie Berger"],"abstract":"Given an image dataset, we are often interested in finding data generative factors that encode semantic content independently from pose variables such as rotation and translation. However, current disentanglement approaches do not impose any specific structure on the learned latent representations. We propose a method for explicitly disentangling image rotation and translation from other unstructured latent factors in a variational autoencoder (VAE) framework. By formulating the generative model as a function of the spatial coordinate, we make the reconstruction error differentiable with respect to latent translation and rotation parameters. This formulation allows us to train a neural network to perform approximate inference on these latent variables while explicitly constraining them to only represent rotation and translation. We demonstrate that this framework, termed spatial-VAE, effectively learns latent representations that disentangle image rotation and translation from content and improves reconstruction over standard VAEs on several benchmark datasets, including applications to modeling continuous 2-D views of proteins from single particle electron microscopy and galaxies in astronomical images.","url_abs":"https://arxiv.org/abs/1909.11663v1","url_pdf":"https://arxiv.org/pdf/1909.11663v1.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":"explicitly-disentangling-image-content-from","repo_url":"https://github.com/tbepler/spatial-VAE","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"disentanglement","task_name":"Disentanglement"},{"task_slug":"translation","task_name":"Translation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1909.11663","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1909.11663"}},"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/tbepler/spatial-VAE","reach":null}],"summary":{"ran_draft_wrong":1,"unverified":6},"by_repo_kind":{"official":{"samples":7,"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":"574e22e6718a6402","entry":"eval_model","repo":"tbepler/spatial-VAE","repo_kind":"official","path":"train_mnist.py","file_url":"https://github.com/tbepler/spatial-VAE/blob/HEAD/train_mnist.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"574e22e6718a6402"}},{"code_sha256_prefix":"d62da5c5c2286341","entry":"eval_minibatch","repo":"tbepler/spatial-VAE","repo_kind":"official","path":"train_mnist.py","file_url":"https://github.com/tbepler/spatial-VAE/blob/HEAD/train_mnist.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":"d62da5c5c2286341"}},{"code_sha256_prefix":"ebc30d59ffdabf83","entry":"eval_model","repo":"tbepler/spatial-VAE","repo_kind":"official","path":"train_particles.py","file_url":"https://github.com/tbepler/spatial-VAE/blob/HEAD/train_particles.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":"ebc30d59ffdabf83"}},{"code_sha256_prefix":"3ec7b29d649004d3","entry":"eval_model","repo":"tbepler/spatial-VAE","repo_kind":"official","path":"train_galaxy.py","file_url":"https://github.com/tbepler/spatial-VAE/blob/HEAD/train_galaxy.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":"3ec7b29d649004d3"}},{"code_sha256_prefix":"4163fc15b9f97382","entry":"train_epoch","repo":"tbepler/spatial-VAE","repo_kind":"official","path":"train_mnist.py","file_url":"https://github.com/tbepler/spatial-VAE/blob/HEAD/train_mnist.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":"4163fc15b9f97382"}},{"code_sha256_prefix":"f5c9a9369be53282","entry":"train_epoch","repo":"tbepler/spatial-VAE","repo_kind":"official","path":"train_particles.py","file_url":"https://github.com/tbepler/spatial-VAE/blob/HEAD/train_particles.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":"f5c9a9369be53282"}},{"code_sha256_prefix":"25a29aa7fdbe9085","entry":"train_epoch","repo":"tbepler/spatial-VAE","repo_kind":"official","path":"train_galaxy.py","file_url":"https://github.com/tbepler/spatial-VAE/blob/HEAD/train_galaxy.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":"25a29aa7fdbe9085"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}