SimCLR ResNet-18 β ImageNet-100
This repository contains the ImageNet-100 SimCLR ResNet-18 checkpoint trained as a non-egocentric reference model for:
Diaz, D. M., & Henderson, M. M. (2026). Eccentricity-Constrained CNN Training Reveals Adaptive Information Coding Around the Visual Field. Proceedings of the 9th Conference on Cognitive Computational Neuroscience.
DOI: 10.32470/0416gfsq
arXiv: 2607.19316
Contributed Talk: CCN 2026 presentation on YouTube
The model was pretrained using SimCLR with a ResNet-18 backbone and served as one of the non-egocentric reference models in the associated study. It was evaluated alongside models pretrained on ImageNet-1K and STL-10 as comparison models for representations learned from naturalistic egocentric visual experience.
Training was implemented using the Lightly self-supervised learning framework. The training images were obtained from the clane9/imagenet-100 dataset on Hugging Face.
Model Architecture
The model uses a standard ResNet-18 encoder with the classification head removed and a SimCLR projection head attached during self-supervised pretraining.
| Component | Configuration |
|---|---|
| Backbone | ResNet-18 |
| Backbone representation | 512 dimensions |
| Projection head | Lightly SimCLRProjectionHead |
| Projection dimensions | 512 β 512 β 128 |
| Projection output | 128 dimensions |
| SSL objective | NT-Xent |
| Temperature | 0.1 |
The released checkpoint contains both the ResNet-18 backbone and the SimCLR projection head. For downstream applications, the 512-dimensional backbone representation can be extracted independently of the projection head.
Training Configuration
| Parameter | Value |
|---|---|
| Dataset | ImageNet-100 |
| Dataset source | clane9/imagenet-100 |
| Number of classes | 100 |
| Epochs | 120 |
| Batch size | 64 |
| Input resolution | 224 Γ 224 |
| Optimizer | LARS |
| Initial learning rate | 0.075 |
| Momentum | 0.9 |
| Weight decay | 1e-6 |
| LR schedule | Cosine warmup |
| Warmup | 10 epochs |
| Precision | 16-bit mixed precision |
| Distributed training | No |
The learning rate was linearly scaled from a base learning rate of 0.3 according to batch size:
0.3 Γ (64 / 256) = 0.075
Training Data
Training data were obtained from the Hugging Face dataset:
The dataset was downloaded locally and organized into training and validation directories. The training split was used for self-supervised representation learning.
The dataset itself is not redistributed through this repository and remains subject to its original access conditions and terms.
Checkpoint
File: checkpoint_120-resnet18-simclr-imagenet100.ckpt
The released file is a full PyTorch Lightning checkpoint, rather than a backbone-only state dictionary.
Checkpoint inspection confirmed:
| Property | Value |
|---|---|
| PyTorch Lightning version recorded | 2.6.1 |
| Stored epoch | 119 |
| Training epochs completed | 120 |
| Global step | 237,480 |
| State-dict entries | 132 |
| Backbone output | 512 dimensions |
| Projection output | 128 dimensions |
| Strict architecture loading | Successful |
The stored epoch is zero-indexed, so epoch = 119 corresponds to the completion of epoch 120.
The checkpoint also contains optimizer, learning-rate scheduler, training-loop, callback, and mixed-precision state in addition to the model parameters.
Loading the Checkpoint
The checkpoint can be loaded by reconstructing the ResNet-18 backbone and SimCLR projection head used during training.
import torch
import torch.nn as nn
import torchvision
from lightly.models.modules import heads
class SimCLRResNet18(nn.Module):
def __init__(self):
super().__init__()
resnet = torchvision.models.resnet18(weights=None)
feature_dim = resnet.fc.in_features # 512
# Remove the classification head
self.backbone = nn.Sequential(
*list(resnet.children())[:-1]
)
# SimCLR projection head: 512 -> 512 -> 128
self.projection_head = heads.SimCLRProjectionHead(
feature_dim,
feature_dim,
128,
)
def forward(self, x):
features = self.backbone(x).flatten(start_dim=1)
projections = self.projection_head(features)
return projections
checkpoint = torch.load(
"checkpoint_120-resnet18-simclr-imagenet100.ckpt",
map_location="cpu",
weights_only=False,
)
model = SimCLRResNet18()
model.load_state_dict(checkpoint["state_dict"], strict=True)
model.eval()
Extracting Backbone Features
For most downstream applications, the 512-dimensional ResNet-18 representation can be extracted without using the SimCLR projection head:
with torch.no_grad():
features = model.backbone(images).flatten(start_dim=1)
print(features.shape)
# [batch_size, 512]
The 128-dimensional SimCLR projection can instead be obtained with:
with torch.no_grad():
projections = model(images)
print(projections.shape)
# [batch_size, 128]
Input tensors should have shape [batch_size, 3, 224, 224].
Comparative Evaluation Results
The table below reproduces the summary metrics reported in the associated paper across all VEDB-trained conditions and reference models. Rows corresponding to this repository's ImageNet-100 checkpoint are bolded.
| Task | Condition | Val Loss | Top-1 (%) | Top-5 (%) | Best Macro-F1 (%) |
|---|---|---|---|---|---|
| SimCLR | Baseline | 0.4331 | 87.60 | β | β |
| SimCLR | Fovea-Gaze | 0.3749 | 90.43 | β | β |
| SimCLR | Periph-NF | 0.4548 | 90.04 | β | β |
| SimCLR | Periph | 0.4545 | 89.26 | β | β |
| In-Domain | Baseline | 0.9811 | β | β | 42.17 |
| In-Domain | Fovea-Gaze | 1.2031 | β | β | 43.64 |
| In-Domain | Periph-NF | 1.3090 | β | β | 30.93 |
| In-Domain | Periph | 1.0623 | β | β | 36.56 |
| In-Domain | STL-10 | 1.6666 | β | β | 25.41 |
| In-Domain | ImageNet-100 | 1.2342 | β | β | 41.23 |
| In-Domain | ImageNet-1K | 0.9713 | β | β | 43.33 |
| VGGFace2 | Baseline | 7.8101 | 5.21 | 11.73 | 3.26 |
| VGGFace2 | Fovea-Gaze | 7.9104 | 4.58 | 10.76 | 2.70 |
| VGGFace2 | Periph-NF | 8.0232 | 3.39 | 8.17 | 1.90 |
| VGGFace2 | Periph | 8.1681 | 2.54 | 6.39 | 1.35 |
| VGGFace2 | STL-10 | 6.9973 | 9.55 | 18.96 | 7.43 |
| VGGFace2 | ImageNet-100 | 6.7985 | 10.77 | 21.07 | 8.71 |
| VGGFace2 | ImageNet-1K | 6.7964 | 10.74 | 21.08 | 8.77 |
| Places365 | Baseline | 3.9690 | 25.63 | 51.90 | 23.16 |
| Places365 | Fovea-Gaze | 4.2347 | 21.86 | 46.21 | 19.14 |
| Places365 | Periph-NF | 4.2621 | 20.51 | 44.58 | 17.86 |
| Places365 | Periph | 4.2671 | 20.26 | 44.10 | 17.65 |
| Places365 | STL-10 | 3.8281 | 26.57 | 53.47 | 24.82 |
| Places365 | ImageNet-100 | 3.9207 | 24.99 | 51.21 | 23.32 |
| Places365 | ImageNet-1K | 3.6264 | 30.17 | 58.46 | 28.36 |
Note: SimCLR Top-1 is computed from the self-supervised pretraining evaluation and is not directly comparable to downstream supervised classification accuracy. For downstream tasks, the pretrained ResNet-18 backbone was frozen and only a linear classifier was trained; the backbone weights were not fine-tuned. Classifier checkpoints were selected by best validation Macro-F1. In-domain Top-1 accuracy is omitted because label imbalance across VEDB frame categories can make accuracy misleading; Macro-F1 is reported as the primary class-balanced metric. STL-10, ImageNet-100, and ImageNet-1K are treated as out-of-domain reference models because they were not pretrained on VEDB.
Intended Use
This checkpoint is provided for research and downstream applications involving self-supervised visual representations, including:
- reproducing the reference-model analyses reported in Diaz and Henderson (2026),
- extracting ResNet-18 representations for comparison with the VEDB-pretrained models,
- reproducing the associated NSD voxelwise encoding analyses,
- linear-probe or fine-tuned image classification,
- transfer learning to other visual recognition tasks, and
- representation-learning and visual-neuroscience research.
The released checkpoint contains a self-supervised ResNet-18 encoder and SimCLR projection head rather than a trained classification head. For image classification, users can attach and train an appropriate classifier on the learned backbone representations or fine-tune the encoder for the target task.
Related Models
This model was used as a non-egocentric reference model in the study associated with the Eccentricity-Constrained SimCLR Models (VEDB) collection.
- VEDB SimCLR ResNet-18 β Baseline
- VEDB SimCLR ResNet-18 β Fovea-Gaze
- VEDB SimCLR ResNet-18 β Periph
- VEDB SimCLR ResNet-18 β Periph-NF
- VEDB NSD ResNet-18 β Encoding Models
- SimCLR ResNet-18 β ImageNet-1K
- SimCLR ResNet-18 β ImageNet-100
- SimCLR ResNet-18 β STL-10 (external pretrained reference model; checkpoint provided by Spijkervet/SimCLR and not redistributed by this project)
Citation
If you use this checkpoint or representations derived from it in academic work, please cite the associated study:
@inproceedings{diaz2026eccentricity,
author = {Diaz, Dylan M. and Henderson, Margaret M.},
title = {Eccentricity-Constrained CNN Training Reveals Adaptive Information Coding Around the Visual Field},
booktitle = {Proceedings of the 9th Conference on Cognitive Computational Neuroscience},
address = {New York, NY, USA},
year = {2026},
doi = {10.32470/0416gfsq}
}
Proceedings: Diaz & Henderson (2026)
Preprint: arXiv:2607.19316
License
The released checkpoint and repository materials are provided under the Apache License 2.0.
The ImageNet-100 training dataset and third-party software used to produce the model remain subject to their respective licenses, access requirements, and terms of use.
- Downloads last month
- 12