Skip to main content

Level 3 project

Transfer Learning Across a Real Dataset

Start from the canonical project files, validate the result, and keep the evidence you need to explain what you built.

Launch lesson: Adaptation Review: Choose, Fine-Tune, Explain

Prerequisite project: Neural Network From Scratch

Goal

Starting from the provided scaffold:

  1. pretrain the source model;
  2. complete build_frozen_transfer;
  3. complete fine_tune;
  4. compare scratch, frozen transfer, and fine-tuning fairly;
  5. add a noisy-image failure slice;
  6. intentionally fine-tune with an aggressive learning rate and explain the failure evidence.

Task

  1. Completed adaptation.py.
  2. REPORT.md based on REPORT_TEMPLATE.md.
  3. Checker output.
  4. A strategy decision that uses at least three pieces of evidence.

Your report must include source-task accuracy; scratch, frozen-transfer, and fine-tuned target accuracy; trainable parameter counts; encoder movement; clean/noisy-slice accuracy; the aggressive-learning-rate failure; provenance notes; and a final strategy decision.

Validation

Run these commands from the downloaded Project folder or the public materials repository root.

python projects/tests/l03/check_submission.py projects/starters/l03

Rubric

Total: 100 points. The project measures the Level 3 exit skills directly.

CriterionPointsObservable evidence
Representation / transfer reasoning15Explains what the source encoder learned, why the target task is related, and why transfer is a hypothesis rather than a guarantee.
Functional frozen transfer15Reuses the pretrained encoder, freezes it correctly, trains a new head, and reports reproducible validation evidence.
Controlled fine-tuning15Starts from the same frozen checkpoint, unfreezes the encoder, uses a conservative learning rate, and measures encoder movement.
Fair strategy comparison15Scratch, frozen transfer, and fine-tuning use the same target split, preprocessing, seed policy, validation set, and metric.
Failure analysis10Includes the required noisy-image slice with a precise perturbation definition, seed, clean control, and interpretation.
Intentional failure and debugging15Runs aggressive fine-tuning, records movement/quality evidence, forms a causal hypothesis, restores the correct checkpoint/configuration, and verifies the fix.
Reproducibility / provenance10Records Python/package versions, seed, CPU/GPU condition, dataset provenance, and clean-start/checker evidence; no credentials are required.
Communication / decision5Chooses a strategy using at least three pieces of evidence and names a real tradeoff rather than claiming one method is universally best.

Performance anchors

Full credit

The implementation is reproducible, all three strategies are fairly compared, frozen and fine-tuned behavior are technically correct, and the final decision is supported by metrics, movement, failure slices, and resource/reproducibility evidence.

Partial credit

The code mostly works but one exit skill is weak—for example, transfer is implemented but the comparison changes the split, or fine-tuning succeeds without measuring movement or debugging the aggressive run.

Insufficient

The submission changes the canonical task, uses different validation data for each strategy, leaks validation labels into training, treats a pretrained label as proof of quality, cannot reproduce its result, or reports only one overall accuracy.

← Back to all projects