{"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/unsupervised-learning-of-visual-1","title":"Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles","arxiv_id":"1603.09246","date":"2016-03-30","proceeding":null,"authors":["Mehdi Noroozi","Paolo Favaro"],"abstract":"In this paper we study the problem of image representation learning without\nhuman annotation. By following the principles of self-supervision, we build a\nconvolutional neural network (CNN) that can be trained to solve Jigsaw puzzles\nas a pretext task, which requires no manual labeling, and then later repurposed\nto solve object classification and detection. To maintain the compatibility\nacross tasks we introduce the context-free network (CFN), a siamese-ennead CNN.\nThe CFN takes image tiles as input and explicitly limits the receptive field\n(or context) of its early processing units to one tile at a time. We show that\nthe CFN includes fewer parameters than AlexNet while preserving the same\nsemantic learning capabilities. By training the CFN to solve Jigsaw puzzles, we\nlearn both a feature mapping of object parts as well as their correct spatial\narrangement. Our experimental evaluations show that the learned features\ncapture semantically relevant content. Our proposed method for learning visual\nrepresentations outperforms state of the art methods in several transfer\nlearning benchmarks.","url_abs":"http://arxiv.org/abs/1603.09246v3","url_pdf":"http://arxiv.org/pdf/1603.09246v3.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":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/Confusezius/selfsupervised_learning","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/SharadGitHub/Self-Supervised-Autoencoder","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/bbrattoli/JigsawPuzzlePytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/clvrai/representation-learning-by-learning-to-count","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/facebookresearch/vissl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/ferrannoguera/MLMI-Transfromers","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/gitlimlab/Representation-Learning-by-Learning-to-Count","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/kalelpark/FG-SSL","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"unsupervised-learning-of-visual-1","repo_url":"https://github.com/virtualgraham/sc_patch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"grouped-convolution","method_name":"Grouped Convolution"},{"method_slug":"jigsaw","method_name":"Jigsaw"},{"method_slug":"local-response-normalization","method_name":"Local Response Normalization"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[{"slug":"jigsaw","name":"Jigsaw","full_name":"Jigsaw"}],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1603.09246","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1603.09246"}},"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/facebookresearch/vissl","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/gitlimlab/Representation-Learning-by-Learning-to-Count","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kalelpark/FG-SSL","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/SharadGitHub/Self-Supervised-Autoencoder","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ferrannoguera/MLMI-Transfromers","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Confusezius/selfsupervised_learning","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/clvrai/representation-learning-by-learning-to-count","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bbrattoli/JigsawPuzzlePytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/virtualgraham/sc_patch","reach":null}],"summary":{"ran":7,"ran_fixture":1,"ran_draft_wrong":2,"unverified":3},"by_repo_kind":{"listed":{"samples":13,"ran":10,"repositories":6}},"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":7,"samples":[{"code_sha256_prefix":"c8988caab7b2ad80","entry":"AlexNet","repo":"Confusezius/selfsupervised_learning","repo_kind":"listed","path":"JigsawNet/baseline_conv.py","file_url":"https://github.com/Confusezius/selfsupervised_learning/blob/HEAD/JigsawNet/baseline_conv.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":"c8988caab7b2ad80"}},{"code_sha256_prefix":"6663d33830e09bae","entry":"AttrDict","repo":"facebookresearch/vissl","repo_kind":"listed","path":"vissl/models/trunks/alexnet_jigsaw.py","file_url":"https://github.com/facebookresearch/vissl/blob/HEAD/vissl/models/trunks/alexnet_jigsaw.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":"6663d33830e09bae"}},{"code_sha256_prefix":"80068288a687a198","entry":"Classifier","repo":"SharadGitHub/Self-Supervised-Autoencoder","repo_kind":"listed","path":"Jigsaw Task/skeleton/src/segnet.py","file_url":"https://github.com/SharadGitHub/Self-Supervised-Autoencoder/blob/HEAD/Jigsaw%20Task/skeleton/src/segnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"80068288a687a198"}},{"code_sha256_prefix":"0b750ebcd399df8e","entry":"Flatten","repo":"facebookresearch/vissl","repo_kind":"listed","path":"vissl/models/trunks/alexnet_jigsaw.py","file_url":"https://github.com/facebookresearch/vissl/blob/HEAD/vissl/models/trunks/alexnet_jigsaw.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":"0b750ebcd399df8e"}},{"code_sha256_prefix":"6b7aa1cb23b2f8e5","entry":"LRN","repo":"bbrattoli/JigsawPuzzlePytorch","repo_kind":"listed","path":"JigsawNetwork.py","file_url":"https://github.com/bbrattoli/JigsawPuzzlePytorch/blob/HEAD/JigsawNetwork.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6b7aa1cb23b2f8e5"}},{"code_sha256_prefix":"49b29ff2cd6ea499","entry":"Separable","repo":"SharadGitHub/Self-Supervised-Autoencoder","repo_kind":"listed","path":"Jigsaw Task/skeleton/src/segnet.py","file_url":"https://github.com/SharadGitHub/Self-Supervised-Autoencoder/blob/HEAD/Jigsaw%20Task/skeleton/src/segnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"49b29ff2cd6ea499"}},{"code_sha256_prefix":"4fe485f49849d35b","entry":"VggNetwork","repo":"virtualgraham/sc_patch","repo_kind":"listed","path":"src/nine_patch/nine_patch_a.py","file_url":"https://github.com/virtualgraham/sc_patch/blob/HEAD/src/nine_patch/nine_patch_a.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4fe485f49849d35b"}},{"code_sha256_prefix":"b9b9733099ed93fd","entry":"get_trunk_forward_outputs_module_list","repo":"facebookresearch/vissl","repo_kind":"listed","path":"vissl/models/trunks/alexnet_jigsaw.py","file_url":"https://github.com/facebookresearch/vissl/blob/HEAD/vissl/models/trunks/alexnet_jigsaw.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b9b9733099ed93fd"}},{"code_sha256_prefix":"fa8d202b59c77f16","entry":"parse_out_keys_arg","repo":"facebookresearch/vissl","repo_kind":"listed","path":"vissl/models/trunks/alexnet_jigsaw.py","file_url":"https://github.com/facebookresearch/vissl/blob/HEAD/vissl/models/trunks/alexnet_jigsaw.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fa8d202b59c77f16"}},{"code_sha256_prefix":"4e819ea98b2a0bc8","entry":"register_model_trunk","repo":"facebookresearch/vissl","repo_kind":"listed","path":"vissl/models/trunks/alexnet_jigsaw.py","file_url":"https://github.com/facebookresearch/vissl/blob/HEAD/vissl/models/trunks/alexnet_jigsaw.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4e819ea98b2a0bc8"}},{"code_sha256_prefix":"3eb3d5e042c389a9","entry":"AlexNetJigsaw","repo":"facebookresearch/vissl","repo_kind":"listed","path":"vissl/models/trunks/alexnet_jigsaw.py","file_url":"https://github.com/facebookresearch/vissl/blob/HEAD/vissl/models/trunks/alexnet_jigsaw.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":"3eb3d5e042c389a9"}},{"code_sha256_prefix":"a8e0685e21eae7d2","entry":"Network","repo":"bbrattoli/JigsawPuzzlePytorch","repo_kind":"listed","path":"JigsawNetwork.py","file_url":"https://github.com/bbrattoli/JigsawPuzzlePytorch/blob/HEAD/JigsawNetwork.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":"a8e0685e21eae7d2"}},{"code_sha256_prefix":"10ab7c87e639cc4b","entry":"jigsaw_train","repo":"kalelpark/FG-SSL","repo_kind":"listed","path":"learner/pretrain.py","file_url":"https://github.com/kalelpark/FG-SSL/blob/HEAD/learner/pretrain.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":"10ab7c87e639cc4b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}