feat(reproduce): Add reproducible VisDrone & SKU-110K scripts and benchmarks (#49) - #187
Open
9-71 wants to merge 2 commits into
Open
feat(reproduce): Add reproducible VisDrone & SKU-110K scripts and benchmarks (#49)#1879-71 wants to merge 2 commits into
9-71 wants to merge 2 commits into
Conversation
…struction-ppe, brain-tumor, DDP, P2/UoMoE) with RTX 4050 additional results
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request: Reproduce YOLO-Master on VisDrone and SKU-110K
① Summary & Scope
This PR addresses Issue #49 by providing reproducible training scripts for YOLO-Master on vertical domain datasets (VisDrone & SKU-110K), completing baseline data alignment for both
v0.1-NandEsMoE-Nmodels. The implementation ensures:mAP50,mAP50-95,box_loss,cls_loss, andmoe_loss② Benchmark Results
VisDrone Dataset (Aerial, dense small objects)
reproduce_visdrone.pyreproduce_visdrone.pySKU-110K Dataset (Retail, dense products)
reproduce_sku110k.pyreproduce_sku110k.py--no-sparse-eval)reproduce_sku110k.pyTraining Environment: RTX 4050 6GB, PyTorch 2.11.0+cu128, Windows 11,
batch=4,workers=4-8WandB Project: https://wandb.ai/1853979230-company-/yolo-master-reproduce
Key Observations:
--no-sparse-eval(dense eval), EsMoE-N mAP50 recovers dramatically on SKU-110K: 0.2577 → 0.8970, reaching parity with v0.1-N (0.8877) and even slightly surpassing itdynamic_threshold=0.4without proper renormalization, causing feature magnitude mismatch vs dense training path③ Engineering Robustness & Fixes
Offline Pretrained Weights Adaptation
To address GitHub download timeouts for the pretrained weights (
yolo11n.pt) in restricted network environments,_reproduce_common.pysetspretrained=Falseand initializes the model directly from the configuration YAML, avoiding runtime GitHub fetches during training.VRAM Optimization & DataLoader Configuration
For 6GB VRAM GPUs (e.g., RTX 4050):
--batchand--workersbased on available GPU resourcesES_MOE Sparse Inference Mitigation
eval_dense.pyprovides post-training evaluation withES_MOE.use_sparse_inference=False, ensuring consistent behavior between training (dense path) and inference (dense path)._reproduce_common.pysupports--no-sparse-evalto enable dense validation during training, making per-epoch validation and saved checkpoints all use the dense path.④ Training Loss Metrics (Final Epoch)
VisDrone v0.1-N (Epoch 100)
VisDrone EsMoE-N (Epoch 100)
SKU-110K v0.1-N (Epoch 100)
SKU-110K EsMoE-N (Epoch 100, dense eval)
Note: With
--no-sparse-eval(dense eval), validation losses align closely with training losses, confirming that the sparse inference path was the root cause of the previous mAP collapse.⑤ Training Curve & Reproducibility Guide
Training Convergence
Complete
results.pngconvergence curves are available in the output directories, demonstrating stable loss reduction and mAP improvement across all training epochs:runs/reproduce/visdrone/VisDrone_v0.1-N/results.pngruns/reproduce/visdrone/VisDrone_EsMoE-N/results.pngruns/reproduce/sku110k/SKU-110K_v0.1-N/results.pngruns/reproduce/sku110k/SKU-110K_EsMoE-N/results.pngReproduce Commands
Validation Visualization
Validation set predictions are saved in each output directory:
val_batch0_labels.jpg/val_batch0_pred.jpgval_batch1_labels.jpg/val_batch1_pred.jpgval_batch2_labels.jpg/val_batch2_pred.jpgChecklist
--no-sparse-eval) results obtained and documented