[Issue #49] VisDrone baseline: v0.1-N vs EsMoE-N (5 epochs each) - #204
Open
OldPigxjk wants to merge 6 commits into
Open
[Issue #49] VisDrone baseline: v0.1-N vs EsMoE-N (5 epochs each)#204OldPigxjk wants to merge 6 commits into
OldPigxjk wants to merge 6 commits into
Conversation
…DME + honest limitations
… baseline - Backfill EsMoE-N missing epoch-2 row via dense-eval of epoch2.pt (mAP50=0.0418), with neighbor-interpolated train/val losses; the per-epoch results.csv now covers all 1-5 epochs. - Update comparison_results.json (esmoe mAP50_per_epoch no longer null) and README_issue49.md (problem 5 -> backfilled, honest note). - Regenerate issue49_results_fig.png and issue49_training_curves.png with the complete 1-5 epoch series. - Add VisDrone_local.yaml for local reproduction. Related to Tencent#49
Author
|
@gatilin Hi mentor, the deliverables for Issue #49 are now complete and ready for review. Final update (this push):
Summary: v0.1-N reaches mAP50=0.08116 with 7.52M params; EsMoE-N reaches mAP50=0.07454 with only 2.69M params (~92% of the accuracy at ~1/2.8 the parameters), and its All known limitations (5-epoch budget on CPU, the interpolated loss columns for the backfilled epoch, and SKU-110K being skipped due to bandwidth limits) are documented honestly in the PR description and |
…arse-eval) The recorded local command omitted --no-sparse-eval / --no-amp, which contradicted the reported EsMoE-N mAP (sparse inference collapses val mAP). Document the exact flags used so the numbers are reproducible. Related to Tencent#49
Explain why reported mAP is low: 5-epoch CPU under-training (not converged), and EsMoE-N sparse-eval collapse (needs --no-sparse-eval for fair mAP). Helps reviewers interpret the numbers correctly. Related to Tencent#49
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.
Related to #49
YOLO-Master Issue #49 — 垂类数据集基线训练与 MoE 对比
任务说明
在垂类目标检测数据集 VisDrone2019-DET(无人机航拍,小目标密集)上,
分别训练两种混合专家(MoE)模型 YOLO-Master-v0.1-N 与 YOLO-Master-EsMoE-N,
对比其检测精度(mAP)与专家路由损失(moe_loss),验证 MoE 在垂类场景下的表现。
实验配置
指标对比
逐 epoch mAP50
前 3 个 epoch 两者几乎持平(epoch1 EsMoE-N 反超),第 4-5 epoch 起 v0.1-N 凭更大容量逐渐拉开差距。
结论
差距约 8%;两者收敛趋势一致,均处于快速上升期,尚未收敛。
单位参数的检测效率明显更优。
train/moe_loss(0.00234) 比 v0.1-N (0.00849) 低约 3.6 倍,其多尺度深度可分离卷积专家(kernel 3/5/7)的路由分配更"自信"、专家分工更清晰。
复现指引
仓库自带脚本(使用 ultralytics 内置
VisDrone.yaml,首次运行会自动下载数据集):若本地已有 VisDrone 数据集,可参考本 PR 提供的
scripts/reproduce/VisDrone_local.yaml(绝对路径配置)替换内置 yaml,避免重复下载。
交付物
scripts/reproduce/README_issue49.md— 完整实验报告与已知问题scripts/reproduce/comparison_results.json— 结构化对比结果scripts/reproduce/visdrone_v01_results.csv/visdrone_esmoe_results.csv— 逐 epoch 原始日志scripts/reproduce/visdrone_v01_train.log/visdrone_esmoe_train.log— 训练原始输出scripts/reproduce/issue49_results_fig.png— 指标对比图scripts/reproduce/issue49_training_curves.png— 逐 epoch 训练曲线已知限制(如实说明)
此处结论仅反映早期训练阶段的相对表现,不代表最终收敛精度。完整 300 epoch 的对比
需要 GPU 环境,命令已在上方给出。
results.csv的对应行未落盘。由于每轮权重(
epoch*.pt)完整保留,已用epoch2.pt在 val 集(548 张)上重新做 dense-eval,得到真实的 mAP50=0.04180 / mAP50-95=0.01770 / P=0.180 / R=0.107;该行的 train/* 损失列
由相邻 epoch 线性插值补齐(仅用于曲线连续性,不参与结论)。其余 4 轮均为原始训练日志。
13.6GB 数据集无法下载完成,故本次对比聚焦 VisDrone 单数据集。
精度影响因素分析
本报告中的 mAP50(0.074~0.081)处于极低水平,并非模型能力上限,而主要由以下受控因素决定,请结合此背景解读数字:
use_sparse_inference=True,推理时仅激活约 1 个未归一化专家,而训练时融合全部专家,前向不一致导致验证 mAP 暴跌(接近 0)。本次对比统一加--no-sparse-eval切换稠密评测(train==eval),得到的 0.07454 才与 v0.1-N 可比;不带该 flag 时两模型指标不可直接比较。