ResoMap is a deep learning experimentation framework for analyzing how input image resolution affects CNN performance, computational efficiency, inference latency, and memory usage across multiple architectures.
The project was designed for large-scale resolution sensitivity experiments using GPU acceleration, adaptive pooling, experiment tracking, and automated result aggregation.
This study focuses on understanding the trade-offs between:
- Accuracy
- Inference Speed
- GPU Memory Usage
- Model Complexity
- Resolution Scaling Behavior
Started: November 2025 Completed: February 2026 Training Duration: 2 days continuous experimentation (Feb 1–3, 2026)
- GPU-accelerated training with AMP (Mixed Precision)
- Variable-resolution training support (224px–512px)
- Modular CNN architecture framework
- Automatic experiment tracking with DagsHub + MLflow
- Resolution-aware benchmarking
- Automated JSON → CSV aggregation pipeline
- GPU profiling and inference benchmarking
- Adaptive pooling for arbitrary image resolutions
- Resume training from checkpoints
- simple_cnn
- tiny_cnn
- VGG11 / VGG13 / VGG16
- ResNet18 / ResNet34 / ResNet50
- MobileNetV2 / MobileNetV3
All architectures are implemented in:
src/models.py| Parameter | Value |
|---|---|
| Framework | PyTorch 2.2+ |
| Tracking | MLflow + DagsHub |
| Device | GPU Accelerated |
| Resolutions | 224, 256, 320, 384, 512 |
| Experiments | 10 |
| Training Duration | 48 Hours |
| Resolution | Accuracy | Inference | GPU Memory |
|---|---|---|---|
| 224px | 77.25% | 40.1 ms | 458 MB |
| 256px | 81.19% | 47.8 ms | 583 MB |
| 320px | 81.69% | 67.4 ms | 885 MB |
| 384px | 69.72% | 94.5 ms | 1254 MB |
| 512px | 72.65% | 147.8 ms | 2192 MB |
- Model: simple_cnn
- Resolution: 320px
- Accuracy: 81.69%
| Resolution | Accuracy | Inference | GPU Memory |
|---|---|---|---|
| 224px | 67.18% | 23.6 ms | 233 MB |
| 256px | 67.81% | 25.4 ms | 298 MB |
| 320px | 66.14% | 35.7 ms | 457 MB |
| 384px | 65.34% | 44.1 ms | 649 MB |
| 512px | 64.80% | 67.9 ms | 1139 MB |
- Model: tiny_cnn
- Resolution: 256px
- Accuracy: 67.81%
Higher image resolution does not always improve accuracy.
- simple_cnn performed best at 320px
- tiny_cnn performed best at 256px
This demonstrates non-linear resolution sensitivity across architectures.
Increasing image resolution caused major GPU memory scaling:
- 224px → 512px increased memory usage by ~5x
- Higher resolutions significantly reduced throughput
- Larger models benefited from moderate-high resolutions
- Smaller lightweight models performed better at lower resolutions
tiny_cnn @ 224px–256px
simple_cnn @ 320px
tiny_cnn @ 224px
ResoMap/
│
├── configs/
├── src/
├── scripts/
├── checkpoints/
├── results/
├── analysis/
└── README.md| File | Purpose |
|---|---|
| models.py | CNN architectures |
| trainer.py | GPU training pipeline |
| profiler.py | Inference benchmarking |
| experiment.py | Experiment orchestration |
| results.py | Metrics aggregation |
| explainability.py | Grad-CAM & saliency |
All experiments were tracked using DagsHub + MLflow.
🔗 Experiments: https://dagshub.com/Y-R-A-V-R-5/ResoMap/experiments
- Python
- PyTorch
- CUDA
- MLflow
- DagsHub
- OpenCV
- NumPy
- Pandas
- Matplotlib
Potential future extensions include:
- Full VGG / ResNet benchmark sweeps
- Explainability analysis with Grad-CAM
- FLOPs vs latency correlation studies
- MobileNet edge-device optimization
- Automated Pareto frontier generation
- Distributed multi-GPU scaling
Y. R. A. V. R Hyderabad, India
This project is intended for educational and research purposes.