Checklist IOAI 2026 Individual Contest · Task 6
IOAI Field
Train a small network from scratch (at most 20,260 parameters) that reproduces a parametrised IOAI-logo field, including one dropout-driven random letter.
The task
The IOAI logo is treated as a function F(x, y, W) on the unit square, where hidden parameters W set the letters' scale and slant and the value range inside the first letter. You train a neural network that returns this field value for any coordinate pair.
The field has five regions. Inside the first I, values are very large (1e10 and above) with a linear gradient. The O shows a spiral pattern, and the A is always −1. The last I should return random values in [−2026, 2026] that change even when the same point is evaluated twice. Everywhere else the value is 0, and letters never overlap.
There is no dataset. Instead you get a generator configured by a training JSON file and may sample as much from it as you like; the test configuration is hidden but of a similar nature. Randomness for the last I must come from dropout at inference, not from random-number functions.
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
- A field generator configured by
data/train_config/field_config.json, from which any amount of training data can be sampled; the test configuration and evaluation points are hidden. - You submit
custom_model.pydefining a CustomModel class (inheriting torch.nn.Module, torch imports only) andsolution.ipynb, which trains it and saves the weights tomodel.pt; commit and submit both files.- Scoring
- Average of five region scores × 100. For the first I, O, A and the background, each region's score is 1 − min(MAE/s_R, 1) on N_R = 512 test points. For the last I, dropout stays on and each point is run K = 10 times: a point scores 0 if any output falls outside [−2026, 2026], otherwise min(σ/s_E, 1), and these are averaged. The score is halved if the model has more than 20,260 parameters.
- Rules
- Time limit 5 minutes
- No pretrained models: train from scratch; no internet at grade time
solution.ipynbandcustom_model.py≤ 1 MB together; 5 GB storage- CustomModel must inherit from torch.nn.Module and use only torch imports
- More than 20,260 parameters (sum of p.numel()) halves the score
- No randomness in pure form, including PyTorch rand* and *_uniform functions; stochasticity must come from nn.Dropout at inference
- 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