Spaces:
Sleeping
Sleeping
Commit History
-
section-7: model comparison, MLflow 5-run logging, MobileNet val-split drift baseline
Priya Monisha- model_factory.py: add pretrained=True param to get_model + all _build_* helpers (pretrained=False enables topology-correct CPU benchmarking without weight download) - notebooks/06_model_comparison.py: 9-cell notebook * VGG16 metrics.json reconstructed (null precision/recall/F1/val_accuracy) * CPU benchmark: vgg16=228ms mobilenet=39ms efficientnet=51ms resnet50=115ms yolov8n=154ms * Comparison JSON: schema_version=1.0, champion=resnet50 (65.5%) * MLflow: smartvision_classification (4 runs) + smartvision_detection (1 run), WAL mode SQLite * Drift baseline: val split (not train), get_eval_transforms from augmentor.py, correct+incorrect conditional distributions, 22 .npy score files30e35d2
-
artifacts: add EfficientNet and ResNet50 confusion matrices and training history plots
Priya Monisha91a21f7 -
results: Section 5 complete — all 4 CNNs trained, ResNet50 best at 65.5%
Priya MonishaSection 5 final results: - VGG16: 59.5% (architecture ceiling) - MobileNetV2: 56.7% (backbone lr=1e-5 too conservative) - EfficientNetB0: 58.9% (backbone lr=1e-5 too conservative) - ResNet50: 65.5% test / 63.6% val (data volume bottleneck, 1464 params/img) Pipeline improvements committed alongside results: - dataset.py: create_stratified_split() — random stratified resplit, no sequential bias - loader.py: quality gates 48px→80px, 2% area; compute_overlap_ratio; check_person_overlap - model_factory.py: unfreeze_efficientnet_phase2() added - 01_data_acquisition.py: chair person-overlap filter, MAX_ITER 80k→150k Next: Section 6 YOLOv8 detection training1a28594
-
results: MobileNetV2 Round 3 final -- 56.7% test, architecture ceiling confirmed
Priya MonishaPhase 2 backbone lr=1e-5 too conservative: epoch 1 dropped 8pp before recovering. Phase 2 net contribution: +0.1pp over Phase 1 (56.1%->56.2%). Root cause: frozen MobileNetV2 features ceiling ~56% on COCO crops at 140/class -- architecture+data problem, not optimizer/regularization. metrics.json: Round 3 final values (56.7% test, gap=0.4pp) notebook: EfficientNet block updated -- AdamW wd=1e-3, patience=7, nested mlflow run, head-only ceiling test rationale documented Decision: no Round 4 for MobileNetV2. Proceeding to EfficientNet and ResNet50 to determine architecture vs dataset ceiling.83536c2
-
fix: MobileNetV2 Round 2 overfitting -- Section 5 Round 3 prep
Priya Monisha27.4pp train/val gap. Root cause: 552 params/training-img at features[14:] unfreeze on 3,080 samples. Realistic R3 target: 68-74%. metrics.json: stale fast_mode artifact replaced with confirmed Colab Round 2 values (62.3%, 23ep). Realistic accuracy target documented. augmentor.py: RandomGrayscale(p=0.05) + RandomPerspective(scale=0.2,p=0.3) ColorJitter 0.2->0.3, rotation 15->20deg, ZoomOut (1.3)->(1.4) model_factory.py: get_model() dispatcher + _build_* internal functions MobileNet: full classifier replaced (Dropout 0.2->0.4) unfreeze_mobilenet_phase2: features[14:] slice -> enumerate idx>=16 ~1.23M unfrozen (401/img) vs 1.71M (552/img) Round 2 _build_resnet50: freeze ALL then replace fc (unambiguous ownership) Removed from API: freeze_resnet50_phase1, freeze_vgg16_phase1, unfreeze_vgg16_phase2, count_trainable_params notebook: MobileNet block rewritten AdamW replaces Adam; Phase 1 wd 1e-4->1e-3 Phase 2 backbone lr=1e-5 (was 1e-4) -- highest-impact change Ph…58027ad