{"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/harmonic-networks-deep-translation-and","title":"Harmonic Networks: Deep Translation and Rotation Equivariance","arxiv_id":"1612.04642","date":"2016-12-14","proceeding":"CVPR 2017 7","authors":["Daniel E. Worrall","Stephan J. Garbin","Daniyar Turmukhambetov","Gabriel J. Brostow"],"abstract":"Translating or rotating an input image should not affect the results of many\ncomputer vision tasks. Convolutional neural networks (CNNs) are already\ntranslation equivariant: input image translations produce proportionate feature\nmap translations. This is not the case for rotations. Global rotation\nequivariance is typically sought through data augmentation, but patch-wise\nequivariance is more difficult. We present Harmonic Networks or H-Nets, a CNN\nexhibiting equivariance to patch-wise translation and 360-rotation. We achieve\nthis by replacing regular CNN filters with circular harmonics, returning a\nmaximal response and orientation for every receptive field patch.\n  H-Nets use a rich, parameter-efficient and low computational complexity\nrepresentation, and we show that deep feature maps within the network encode\ncomplicated rotational invariants. We demonstrate that our layers are general\nenough to be used in conjunction with the latest architectures and techniques,\nsuch as deep supervision and batch normalization. We also achieve\nstate-of-the-art classification on rotated-MNIST, and competitive results on\nother benchmark challenges.","url_abs":"http://arxiv.org/abs/1612.04642v2","url_pdf":"http://arxiv.org/pdf/1612.04642v2.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":"harmonic-networks-deep-translation-and","repo_url":"https://github.com/deworrall92/harmonicConvolutions","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"rotated-mnist","task_name":"Rotated MNIST"},{"task_slug":"translation","task_name":"Translation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1612.04642","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1612.04642"}},"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/deworrall92/harmonicConvolutions","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":13},"by_repo_kind":{"listed":{"samples":13,"ran":0,"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":"3585fc156f11f337","entry":"add_folder","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"MNIST-rot/run_mnist.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/MNIST-rot/run_mnist.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":"3585fc156f11f337"}},{"code_sha256_prefix":"7723edaa5a84d58f","entry":"batch_norm","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"harmonic_network_lite.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/harmonic_network_lite.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":"7723edaa5a84d58f"}},{"code_sha256_prefix":"c5e0c334b1ea894e","entry":"bsd_preprocess","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"BSD500/run_BSD.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/BSD500/run_BSD.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":"c5e0c334b1ea894e"}},{"code_sha256_prefix":"c279237444adb14b","entry":"conv2d","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"harmonic_network_lite.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/harmonic_network_lite.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":"c279237444adb14b"}},{"code_sha256_prefix":"b8e8d8cb56bc2548","entry":"get_learning_rate","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"MNIST-rot/run_mnist.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/MNIST-rot/run_mnist.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":"b8e8d8cb56bc2548"}},{"code_sha256_prefix":"ccf8f3d68866badd","entry":"h_conv","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"harmonic_network_ops.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/harmonic_network_ops.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":"ccf8f3d68866badd"}},{"code_sha256_prefix":"3176341d4187a34c","entry":"h_nonlin","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"harmonic_network_ops.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/harmonic_network_ops.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":"3176341d4187a34c"}},{"code_sha256_prefix":"d058392f498fa843","entry":"h_range_conv","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"harmonic_network_ops.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/harmonic_network_ops.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":"d058392f498fa843"}},{"code_sha256_prefix":"745a4cd097402be8","entry":"non_linearity","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"harmonic_network_lite.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/harmonic_network_lite.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":"745a4cd097402be8"}},{"code_sha256_prefix":"4e3936d10a010a69","entry":"read_train_file","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"deprecated/convert_imagenet_to_tfrecords.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/deprecated/convert_imagenet_to_tfrecords.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":"4e3936d10a010a69"}},{"code_sha256_prefix":"5cae47060b6ff219","entry":"read_valid_file","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"deprecated/convert_imagenet_to_tfrecords.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/deprecated/convert_imagenet_to_tfrecords.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":"5cae47060b6ff219"}},{"code_sha256_prefix":"31167f7af878ba77","entry":"to_4d","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"BSD500/BSD_model.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/BSD500/BSD_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":"31167f7af878ba77"}},{"code_sha256_prefix":"1e4678f177467e83","entry":"vgg_bsd","repo":"deworrall92/harmonicConvolutions","repo_kind":"listed","path":"BSD500/BSD_model.py","file_url":"https://github.com/deworrall92/harmonicConvolutions/blob/HEAD/BSD500/BSD_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":"1e4678f177467e83"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}