You are to train a model that can classify *sketches* into their respective categories.

However, **none of the sketches are labelled**. Instead, you are given labelled *photographs* and *cartoons* corresponding to the categories.

---

### Evaluation Format

You must output a CSV file with two columns:
- `filename`: the exact file name of the prediction, e.g. `xxxxxx.jpg`
- `class_name`: the exact name of the class as per the `cartoon`/`photograph` directories, e.g. `alarm_clock`

---

### Scoring Method

The performance of your model will be determined by **F1 Score**.

The baseline solution in this notebook scores **0.4093**, rounded to 4 decimal places.

---

### Architecture Restrictions

1. You **may not** use any pre-trained models, apart from those provided in [torchvision](https://docs.pytorch.org/vision/main/models.html).
2. You **may not** train your model directly on the validation or test samples in any way. This includes any unsupervised learning technique, calculating statistics over them, running GPT-5 agents etc.
3. You **may not** use any external dataset.
4. You **may not** label the unlabeled sketches or test set with any pre-trained model, e.g. CLIP.