Papers › A Simple Framework for Contrastive Learning of Visual Representations
A Simple Framework for Contrastive Learning of Visual Representations
Ting Chen, Simon Kornblith, Mohammad Norouzi, Geoffrey Hinton
This paper presents SimCLR: a simple framework for contrastive learning of visual representations. We simplify recently proposed contrastive self-supervised learning algorithms without requiring specialized architectures or a memory bank. In order to understand what enables the contrastive prediction tasks to learn useful representations, we systematically study the major components of our framework. We show that (1) composition of data augmentations plays a critical role in defining effective predictive tasks, (2) introducing a learnable nonlinear transformation between the representation and the contrastive loss substantially improves the quality of the learned representations, and (3) contrastive learning benefits from larger batch sizes and more training steps compared to supervised learning. By combining these findings, we are able to considerably outperform previous methods for self-supervised and semi-supervised learning on ImageNet. A linear classifier trained on self-supervised representations learned by SimCLR achieves 76.5% top-1 accuracy, which is a 7% relative improvement over previous state-of-the-art, matching the performance of a supervised ResNet-50. When fine-tuned on only 1% of the labels, we achieve 85.8% top-5 accuracy, outperforming AlexNet with 100X fewer labels.
In Syntology View this paper on Syntology: its repositories, every harvested function with whether it ran, its licence and the call to fetch it.
Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2002.05709")
Code
Syntology Ran 112 of 137 code samples harvested from 55 repositories linked to this paper; 25 have no recorded run. Of those that ran: 1 ran · honoured contract; 1 ran · violated contract; 20 ran · our draft was wrong; 5 ran · fixture could not drive it; 85 ran with no contract checked.
By repository: official repository: 2 samples from 1 repository, 2 ran; community (archive-listed): 134 samples from 54 repositories, 109 ran; 1 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
96 repositories listed; official and paper-mentioned ones first.
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
137 samples harvested; 112 ran; 1 honoured the contract we drafted; 25 have no recorded run. Read from Syntology's graph 2026-09-25; that is when this build read the record, not when the samples ran.
Licence: 52 of the 137 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 55 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
c418940b96d1fe9e · report
7aac0de5d1568953 · report
190117b425ab9fe1 · report
7937263b7909ba06 · report
e6a9a9260ef0a74a · report
0736b9b372d39725 · report
d05210f656c96fc4 · report
5ad08dec1ed71937 · report
7d227e358ec14382 · report
43ca37aec47363d7 · report
3cb087a414dec282 · report
c6673456e63337b4 · report
b77efc36f9b77b9b · report
0a6342453ea2f75f · report
2a061ea2756788d0 · report
4fa18a92d2d6193b · report
249ded5d814fb1fd · report
dec5ae5526431e69 · report
f3d9092135724cbd · report
93679e35512cbdb7 · report
f10b64ecf0f39804 · report
bc1d652d78503f98 · report
626ad09af14b9cab · report
2f6dc2d5f30f106e · report
8556399cf0e482d3 · report
24e7779cb2a243e3 · report
c541394f43fa9adc · report
8ae8bb52d6e02325 · report
7339ae06662b97a5 · report
40a653c6651fc5d4 · report
15c470cde64303bb · report
5069ef275d4321a2 · report
f33e37ad81b7d344 · report
54df182d9c00588a · report
b27ce753d440a134 · report
e78d903f294bb8e2 · report
bf78992ef15b4628 · report
99b66383d6cd5bf7 · report
2c196dbc33af1e86 · report
dccd7194c3fa9092 · report
965480d2c18b15a7 · report
db46cc53970a4db1 · report
4c7f0882280707e1 · report
b4045ab6673c8148 · report
4578ef90ebbe26cd · report
6db2a02555c7f204 · report
3ac7ccd797e47c29 · report
2d22ec7eee6353ce · report
00e45e65ec60a85c · report
19bb24ecb5d473db · report
a5dbd9a427e2bec3 · report
d8d1dd0aafb92f18 · report
1d1a1df3f3426c17 · report
50709c4ec879ecc5 · report
589ff9232fa952cc · report
b0f936d4d6ae3b8c · report
11bc56dd2ecb7644 · report
92885c7117af82c9 · report
8924ee1d1cde05c4 · report
4cc4c53bf5875d64 · report
2c4b4b78675c35ee · report
2b5d65dc96c1a03b · report
8e2cdb7569401c95 · report
3a7dd916ad6f6389 · report
0809a27fc54eb733 · report
583552044648d2f0 · report
eb14839e65ee11cf · report
ba00312b3d5b70dc · report
eac22c52c3120485 · report
6842d0dec7d692ae · report
5d283bdd3a74687f · report
c412bcc0dbd87516 · report
07fd42842d206009 · report
1f3daef400d7d53c · report
b621a5344f937d5e · report
86b892b3b407785f · report
8c4252f18f2e14a8 · report
0adaf15a01b00920 · report
94226f82998bee03 · report
6181cfb7ba78942e · report
cb291d2ffc7590c7 · report
6940670c59bb0cda · report
bcbf650b774f3bab · report
df7842ad80bc568e · report
a89e539d4a1fa3b2 · report
e0f6be0e6d3d8c17 · report
6325cd34bc332e95 · report
ae6df0014dbc55c9 · report
d3385cd7eed6a6f2 · report
191b9a33cbd317cc · report
0931a280f76e561f · report
56d873a0ee406a9d · report
a3786294fb65e90e · report
c404ad6b3c3cae86 · report
98c1de629745feab · report
9a021af106b97cf3 · report
034143e2f3288a7c · report
5b8da074d51c8e00 · report
0834c0be7a6b72e8 · report
cfd9492c2dbc3c97 · report
122255f68540f240 · report
c91376d1f880ecf3 · report
e098d0fbdbf83114 · report
c48a4ea6fafc859f · report
3f1dd5d8d7b83513 · report
7d95614711e96832 · report
5ef56dc923793fb3 · report
4ec61811bee71758 · report
d77f6aa7bb727375 · report
b00d9ebb0254cfd3 · report
f823e0add18d7eec · report
db566f0014cc2980 · report
7fd8c4e94eb9d6f4 · report
d1deb5d7410ae0b7 · report
f5ffc1cae804d1f7 · report
ea2c3cf94bcdfef3 · report
ff90bea0467c6b51 · report
04a16872e7176429 · report
f81649524890dfe5 · report
708baa8232f99ac8 · report
aea60f5692813252 · report
0e2efd6b67f01d69 · report
bb4e645996e12174 · report
ddf47684b8425901 · report
634317f9c741abd3 · report
3615fd781c0e7e45 · report
5bd550cf0a598b22 · report
9e33b14b41b316ca · report
439f4fcb999995b5 · report
459939c749c8fd3f · report
eab99ab911f1645a · report
7e7b54ff38780a53 · report
75b95f2eaa47b97b · report
20855bdedf943b8f · report
b81f9f44d8624e5f · report
667eaf3785a1c4a9 · report
57bbb1c2ae467a4f · report
Tasks
Results from the paper archive 2025-07-28
Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.
Methods
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections