Welcome to the official course repository for ECE285 – Intro to Visual Learning at UCSD, Spring 2025.
The repo collects all four programming assignments plus a creative final project covering classical CNNs, semantic segmentation, CAM visualization, and neural style transfer.
- Build a two-layer fully-connected network entirely in NumPy
- Implement Linear, ReLU, Softmax, and Cross-Entropy modules
- Strictly vectorised (no explicit Python loops) to encourage clean math thinking
- Deliverables: 4 Python files + 2 notebooks + merged PDF submission
- Gentle ramp-up from bare-bones tensors →
nn.Module→nn.Sequential - Train several CNNs on CIFAR-100; implement ResNet-10 from scratch
- Open-ended section: design any architecture & beat the baseline accuracy
- Implement FCN-32s and FCN-8s, train both scratch & fine-tuned versions
- Add CAM to visualise class-specific regions
- Focus on reproducible training and qualitative mask inspection
- Explore a modern vision topic of your choice (e.g. ViT, object detection, self-supervised learning)
- Report findings and submit code + short write-up
- Fork of the concise PyTorch Neural Style Transfer implementation
- Experiment with style/content weight trade-offs, TV loss, and different initialisations
- Provides ready-to-run scripts and Jupyter demos for artistic results