Read the story

Architecture

Classifies CIFAR-10 under 5M parameters.97.12% on the test set.

CIFAR-10 images are augmented as they load and fed in batches of 128 to a four stage ResNet with 4,978,810 parameters, trained for 300 epochs. Every epoch is scored on 10,000 labeled test images, and the final model labels 10,000 hidden images in a CSV for the class leaderboard.

300 epochs

SGD at learning rate 0.1 on a cosine schedule, batches of 128

21,190 params

left under the 5,000,000 cap by the kept model

88.56 %

for the official ResNet18 in our runs, with more than twice the parameters

93.76 %

best run with flip and crop only, before AutoAugment and perspective reached 97.12%

New York --:-- simulated

A batch, then a submission
ResNet under 5M CIFAR-10 images are augmented as they load and fed in batches of 128 to a four stage ResNet with 4,978,810 parameters, trained for 300 epochs. Every epoch is scored on 10,000 labeled test images, and the final model labels 10,000 hidden images in a CSV for the class leaderboard. Parameter count must stay under 5M CIFAR-10 test 10,000 labeled images CIFAR-10 train 50,000 images Augment auto, crop, flip, warp ResNet, 4 stages 3 blocks each, 4.98M Evaluate accuracy, then a CSV Class leaderboard holds hidden labels SGD, cosine 300 epochs, lr 0.1 Hidden test set 10,000, no labels images batch of 128 weights ID, label count loss labels no labels

Hover a part to trace what it touches. Click it for its notes.

  • Built by me
  • Managed by Google
  • Outside system
  • Main data path
  • On demand
  • Credentials cross

When it breaks

What each failure does, and what it does not do.

  1. A run stops early

    Weights are saved every 10 epochs from epoch 170, so a stopped run still leaves its late checkpoints.

    Notebooks/ResNet26_97_best_model_1.ipynb

  2. Hidden images arrive flat

    Each hidden image is a row of 3,072 numbers. It is reshaped to 3 by 32 by 32 and normalized like the test set before the model sees it.

    Notebooks/ResNet26_97_best_model_1.ipynb

  3. The test score can flatter

    Two finalists were kept: the best on the labeled test set, and a slimmer ResNet24 the repo names best on unseen data.

    README.md

What I tuned

Small choices that keep it fast and cheap.

  1. Uneven channel widths

    128, 100, 164 and 200 came from sweeping widths under the cap. The plain 16, 32, 64, 128 ladder scored 79%.

    Report.pdf

  2. Cosine over step

    In the report's comparison SGD with a step schedule peaked at 92%, and SGD with cosine annealing reached 97.12%.

    Report.pdf

  3. Three blocks per stage

    3, 3, 3, 3 blocks scored 97.12%. ResNet34's 3, 4, 6, 3 scored 91% and needed 5.3 million parameters.

    Report.pdf

Guards

Rules the code enforces, not rules people remember.

  1. Counted before training

    The parameter count prints before the first epoch: 4,978,810 against a 5,000,000 cap.

    Notebooks/ResNet26_97_best_model_1.ipynb

  2. Scored images stay clean

    Test and hidden images get only tensor conversion and normalization. Augmentation touches training images alone.

    Notebooks/ResNet26_97_best_model_1.ipynb

  3. Every run in one sheet

    Each run is logged with its augmentation, channels, optimizer, epochs, parameter count, accuracy and who ran it.

    README.md