{"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/self-supervised-learning-for-large-scale","title":"Self-Supervised Learning for Large-Scale Unsupervised Image Clustering","arxiv_id":"2008.10312","date":"2020-08-24","proceeding":null,"authors":["Evgenii Zheltonozhskii","Chaim Baskin","Alex M. Bronstein","Avi Mendelson"],"abstract":"Unsupervised learning has always been appealing to machine learning researchers and practitioners, allowing them to avoid an expensive and complicated process of labeling the data. However, unsupervised learning of complex data is challenging, and even the best approaches show much weaker performance than their supervised counterparts. Self-supervised deep learning has become a strong instrument for representation learning in computer vision. However, those methods have not been evaluated in a fully unsupervised setting. In this paper, we propose a simple scheme for unsupervised classification based on self-supervised representations. We evaluate the proposed approach with several recent self-supervised methods showing that it achieves competitive results for ImageNet classification (39% accuracy on ImageNet with 1000 clusters and 46% with overclustering). We suggest adding the unsupervised evaluation to a set of standard benchmarks for self-supervised learning. The code is available at https://github.com/Randl/kmeans_selfsuper","url_abs":"https://arxiv.org/abs/2008.10312v2","url_pdf":"https://arxiv.org/pdf/2008.10312v2.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":"self-supervised-learning-for-large-scale","repo_url":"https://github.com/Randl/kmeans_selfsuper","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"image-clustering","task_name":"Image Clustering"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"},{"task_slug":"unsupervised-image-classification","task_name":"Unsupervised Image Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-classification-on-objectnet","task":"Image Classification","dataset":"ObjectNet","model":"BigBiGAN (RevNet-50 4×)","rank_in_archive_order":105,"of":106,"metrics":{"Top-1 Accuracy":"4.92"},"uses_additional_data":true},{"leaderboard":"/sota/unsupervised-image-classification-on-imagenet","task":"Unsupervised Image Classification","dataset":"ImageNet","model":"SimCLRv2 ResNet-152 + SK (PCA+k-means, 1500 clusters)","rank_in_archive_order":3,"of":9,"metrics":{"ARI":"23.94±0.16","Accuracy (%)":"46.03±0.21"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-image-classification-on-imagenet","task":"Unsupervised Image Classification","dataset":"ImageNet","model":"SimCLRv2 ResNet-152 + SK (PCA+k-means)","rank_in_archive_order":8,"of":9,"metrics":{"ARI":"22.80±0.60","Accuracy (%)":"39.07±0.61"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-image-classification-on","task":"Unsupervised Image Classification","dataset":"ObjectNet","model":"InfoMin ResNeXt-152 + SK (PCA+k-means)","rank_in_archive_order":1,"of":2,"metrics":{"ARI":"1.59±0.04","Accuracy (%)":"6.53±0.19"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-image-classification-on","task":"Unsupervised Image Classification","dataset":"ObjectNet","model":"SimCLRv2 ResNet-152 + SK (PCA+k-means, 1500 clusters)","rank_in_archive_order":2,"of":2,"metrics":{"ARI":"1.32±0.05","Accuracy (%)":"6.47±0.07"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2008.10312","atlas_url":"https://app.syntology.ai/?focus=2008.10312","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2008.10312"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/Randl/kmeans_selfsuper","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"unverified":9},"by_repo_kind":{"official":{"samples":11,"ran":2,"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":"63dc243289400452","entry":"get_best_clusters","repo":"randl/kmeans_selfsuper","repo_kind":"official","path":"cluster.py","file_url":"https://github.com/randl/kmeans_selfsuper/blob/HEAD/cluster.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"63dc243289400452"}},{"code_sha256_prefix":"53437473e6a66a64","entry":"get_cost_matrix","repo":"randl/kmeans_selfsuper","repo_kind":"official","path":"cluster.py","file_url":"https://github.com/randl/kmeans_selfsuper/blob/HEAD/cluster.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":"53437473e6a66a64"}},{"code_sha256_prefix":"74f9e58e15186552","entry":"crop_center_and_resize","repo":"Randl/kmeans_selfsuper","repo_kind":"official","path":"generate_prediction_tf.py","file_url":"https://github.com/Randl/kmeans_selfsuper/blob/HEAD/generate_prediction_tf.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":"74f9e58e15186552"}},{"code_sha256_prefix":"96c98a6eaa49160b","entry":"eval","repo":"randl/kmeans_selfsuper","repo_kind":"official","path":"generate_prediction_pytorch.py","file_url":"https://github.com/randl/kmeans_selfsuper/blob/HEAD/generate_prediction_pytorch.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":"96c98a6eaa49160b"}},{"code_sha256_prefix":"526bad0a33805d03","entry":"eval","repo":"Randl/kmeans_selfsuper","repo_kind":"official","path":"generate_prediction_pytorch_supervised.py","file_url":"https://github.com/Randl/kmeans_selfsuper/blob/HEAD/generate_prediction_pytorch_supervised.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":"526bad0a33805d03"}},{"code_sha256_prefix":"9f240baca01dbd55","entry":"eval_swav","repo":"randl/kmeans_selfsuper","repo_kind":"official","path":"generate_prediction_pytorch.py","file_url":"https://github.com/randl/kmeans_selfsuper/blob/HEAD/generate_prediction_pytorch.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":"9f240baca01dbd55"}},{"code_sha256_prefix":"c3d1c7b673f0c808","entry":"get_label","repo":"Randl/kmeans_selfsuper","repo_kind":"official","path":"generate_prediction_tf.py","file_url":"https://github.com/Randl/kmeans_selfsuper/blob/HEAD/generate_prediction_tf.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":"c3d1c7b673f0c808"}},{"code_sha256_prefix":"25b6cb1de2b6763b","entry":"get_label_objectnet","repo":"Randl/kmeans_selfsuper","repo_kind":"official","path":"generate_prediction_tf.py","file_url":"https://github.com/Randl/kmeans_selfsuper/blob/HEAD/generate_prediction_tf.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":"25b6cb1de2b6763b"}},{"code_sha256_prefix":"de53820d0a106f94","entry":"inception_preproccess","repo":"Randl/kmeans_selfsuper","repo_kind":"official","path":"torch_utils.py","file_url":"https://github.com/Randl/kmeans_selfsuper/blob/HEAD/torch_utils.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":"de53820d0a106f94"}},{"code_sha256_prefix":"8ed66ef9fef840b5","entry":"scale_crop","repo":"Randl/kmeans_selfsuper","repo_kind":"official","path":"torch_utils.py","file_url":"https://github.com/Randl/kmeans_selfsuper/blob/HEAD/torch_utils.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":"8ed66ef9fef840b5"}},{"code_sha256_prefix":"f68937364f9c7540","entry":"woof_preproccess","repo":"Randl/kmeans_selfsuper","repo_kind":"official","path":"torch_utils.py","file_url":"https://github.com/Randl/kmeans_selfsuper/blob/HEAD/torch_utils.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":"f68937364f9c7540"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}