Checklist IOAI 2026 Individual Contest · Task 4
Double Agent Dilemma
Craft small pixel perturbations for each image so that a ResNet-18 and a ViT-Tiny disagree, fooling each model in turn.
The task
Two frozen ImageNet classifiers, Model R (torchvision ResNet-18) and Model V (timm vit_tiny_patch16_224), label every provided image correctly and agree on all of them. The challenge is to show how differently they see by adding nearly invisible pixel changes that split their verdicts.
For each image you make two perturbations. With Type A added, Model R must still be correct while Model V is wrong; Type B is the reverse. A perturbation is added to the raw image at its original resolution and the pixels are clipped to [0, 1] before the fixed Resize(256), CenterCrop(224) and Normalize pipeline is applied.
The images come from ImageNet-1K's 1,000 classes, and labels are available even for the test sets. The success count is multiplied by a penalty factor between 0.5 and 1 that favours smaller perturbations.
Abridged by SOTA from the official materials. The official statement has the exact rules, and it wins wherever this summary differs.
At a glance
- You get
- PNG images of varying resolution with
labels.jsonmapping image index to class: train (100 images) andtest_public(100 images). At grading timetest_publicis replaced by hiddentest_leaderboard_aandtest_leaderboard_bsets of 100 images each, whose labels are accessible. - You submit
- For each image,
{index}_a.ptand{index}_b.pt: single tensors saved with torch.save, shaped 3 × H × W at the image's original resolution, placed flat (no folders) in onesubmission.zip. Submit exactly one file,solution.ipynb, which produces the zip. - Scoring
- S_final = (Score_A + Score_B) / (2M) × PF, where Score_A and Score_B count successful Type A and Type B perturbations over M images and PF is a penalty factor in [0.5, 1] based on perturbation size (the notebook says L2 size); PF is implemented in
solution.ipynb. - Rules
- Time limit 12 minutes
- One GPU (≈16 GB VRAM), no internet, 5 GB storage
solution.ipynb≤ 1 MB- Models: torchvision.models.resnet18(pretrained=True) and timm.
create_model('vit_tiny_patch16_224', pretrained=True) only; no other pretrained models - Evaluation transform is fixed: Resize(256) → CenterCrop(224) → Normalize(mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225])
- Perturbations must be .pt tensors at the original image resolution (no PNG/JPG), with strict flat
{index}_a.pt/{index}_b.ptnaming - Libraries: torch, torchvision, timm
- Format
- Individual Contest, Day 2 (the 2026 Contest Rules give six hours for the day's three tasks); the same task was set in the GAITE Contest with a hint