Is bigger always better?
A systematic study of width vs. depth scaling in YOLOv8 on the KITTI dataset.
This repository presents a controlled scaling experiment on YOLOv8, analyzing how architectural changes impact:
- 📊 Accuracy (mAP@50)
- ⚡ Inference Speed (FPS)
- 💾 Model Size & Parameters
- ⏱️ Training Cost
We evaluate 5 model variants across two scaling axes:
- Width Scaling → Channel counts per layer
- Depth Scaling → Number of layer repetitions
- 🏆 Best Model:
depth_0.33 - ✅ Higher Accuracy than baseline (+0.2% mAP@50)
- ⚡ +50% Faster Inference
- 💾 −43% Model Size
- ⏱️ −35% Training Time
🔥 Insight: Scaling is non-monotonic — bigger models do NOT guarantee better performance.
- Width reduction → sharp accuracy drop
- Depth reduction → graceful degradation
- Identifies optimal trade-offs between speed vs accuracy
depth_0.33lies on the Pareto frontier
- Smaller model improves minor classes
- Larger model slightly better on complex classes
- Shows overall balance across all metrics
- FPS vs Params → -1.0 correlation
- Recall impacts mAP more than Precision
- Smaller model = more consistent performance
- Highlights diminishing returns of larger models
- Model: YOLOv8
- Dataset: KITTI (Mini-KITTI subset)
- Framework: PyTorch / Ultralytics
- Hardware: GPU (specify if needed)
| Model | Width | Depth |
|---|---|---|
| Baseline | 1.0 | 1.0 |
| Width 0.5 | 0.5 | 1.0 |
| Width 0.33 | 0.33 | 1.0 |
| Depth 0.5 | 1.0 | 0.5 |
| Depth 0.33 | 1.0 | 0.33 |
# Clone repo
git clone https://github.com/Y-R-A-V-R-5/layerscale.git
cd layerscale
# Install dependencies
pip install -r requirements.txt
# Run training
python train.py --config configs/depth_033.yaml











