{"id":15640156,"url":"https://github.com/ayulockin/swav-tf","last_synced_at":"2025-10-19T02:18:54.856Z","repository":{"id":37452681,"uuid":"285306354","full_name":"ayulockin/SwAV-TF","owner":"ayulockin","description":"TensorFlow implementation of \"Unsupervised Learning of Visual Features by Contrasting Cluster Assignments\".","archived":false,"fork":false,"pushed_at":"2022-08-12T16:43:37.000Z","size":21568,"stargazers_count":86,"open_issues_count":0,"forks_count":12,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-23T22:03:31.785Z","etag":null,"topics":["augmentation","contrastive-learning","keras","representation-learning","self-supervised-learning","tensorflow","tensorflow2"],"latest_commit_sha":null,"homepage":"https://app.wandb.ai/authors/swav-tf/reports/Unsupervised-Visual-Representation-Learning-with-SwAV--VmlldzoyMjg3Mzg","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ayulockin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-05T14:06:33.000Z","updated_at":"2025-03-20T03:05:30.000Z","dependencies_parsed_at":"2022-08-19T19:40:55.111Z","dependency_job_id":null,"html_url":"https://github.com/ayulockin/SwAV-TF","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ayulockin/SwAV-TF","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayulockin%2FSwAV-TF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayulockin%2FSwAV-TF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayulockin%2FSwAV-TF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayulockin%2FSwAV-TF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ayulockin","download_url":"https://codeload.github.com/ayulockin/SwAV-TF/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayulockin%2FSwAV-TF/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275457672,"owners_count":25468237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-16T02:00:10.229Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["augmentation","contrastive-learning","keras","representation-learning","self-supervised-learning","tensorflow","tensorflow2"],"created_at":"2024-10-03T11:31:42.757Z","updated_at":"2025-09-16T17:33:19.103Z","avatar_url":"https://github.com/ayulockin.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SwAV-TF\n\nBy: [Ayush Thakur](https://twitter.com/ayushthakur0) and [Sayak Paul](https://twitter.com/RisingSayak)\n\nTensorFlow 2 implementation of [Unsupervised Learning of Visual Features by Contrasting Cluster Assignments](https://arxiv.org/abs/2006.09882) by Mathilde Caron, Ishan Misra, Julien Mairal, Priya Goyal, Piotr Bojanowski, Armand Joulin.\n\nTo know more about SwAV and the experiments we performed with it you can check out our blog post [Unsupervised Visual Representation Learning with SwAV](https://app.wandb.ai/authors/swav-tf/reports/Unsupervised-visual-representation-learning-with-SwAV--VmlldzoyMjg3Mzg). Our blog post is structured in the following way - \n\n- Common problems in existing self-supervised methods (for visual representation learning)\n- SwAV at a high-level\n- Multi-crop augmentation policy and its promise\n- Contrasting the cluster assignments\n  - Cluster assignment as an optimal transport problem\n  - Swapped prediction problem to enforce consistency\n- A single forward pass in SwAV\n- Experimental results\n- Conclusion\n\n## Model weights for reproducibility\nAvailable [here](https://github.com/ayulockin/SwAV-TF/releases/tag/v0.1.0). \n\n## Results\nResults of all our experiments are available as a `wandb` dashboard. [![Explore-in W\u0026B](https://img.shields.io/badge/Explore--in-W%26B-%23FFBE00)](https://app.wandb.ai/authors/swav-tf) \n\n## Acknowledgements\nThanks to Mathilde Caron for providing insightful pointers that helped us minimally implement SwAV.\n\nThanks to Jiri Simsa of Google for providing us with tips that helped us improve our data input pipeline.\n\nThanks to the [Google Developers Experts program](https://developers.google.com/programs/experts/0) for providing us with GCP credits.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayulockin%2Fswav-tf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fayulockin%2Fswav-tf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayulockin%2Fswav-tf/lists"}