
中文手册:https://gitcode.com/gh_mirrors/xa/X-AnyLabeling/blob/main/docs/zh_cn/user_guide.md
截图中展示的 X-AnyLabeling 高级设置,是为其集成的模型训练功能而设计的。它允许你在标注好数据后,直接对模型进行精细的调参和训练,相当于一个简化版的 YOLO 训练配置界面。
🎯 1. 训练策略 (Training Strategy)
- Time (h): 训练时长(小时)。超时后训练将自动停止。若不设置则训练直到完成指定轮数。
- Patience (100): 早停耐心值。若连续 100 轮验证集精度没有提升,训练将提前终止,可防止过拟合和节省时间。
- Close Mosaic (10): 关闭马赛克增强的轮数。训练的最后 10 轮不再使用马赛克增强,有助于模型微调,稳定收敛。
- Optimizer (auto) : 自动选择优化器。
auto下,系统会根据模型大小自动选择,例如AdamW。 - Cosine LR : 这是 "Cosine Annealing LR" 的缩写。一种学习率衰减策略,学习率会按照余弦函数曲线周期性变化,有助于模型跳出局部最优。
- AMP : 自动混合精度 (Automatic Mixed Precision)。开启后,训练会部分使用
float16半精度计算,能显著节省显存并加速训练。 - Multi Scale: 多尺度训练。每隔一定迭代,输入图像的尺寸会在一个范围内随机变化,能增强模型对物体大小的鲁棒性。
📉 2. 学习率 (Learning Rate)
- LR0 (0.01): 初始学习率。模型开始训练时的步长,过大会导致不收敛,过小会导致收敛太慢。对于小数据集,通常会适当调小。
- LRF (0.01): 最终学习率。训练结束时的学习率,它是初始学习率 Lr0 的一个倍数。最终学习率 Lr_final = Lr0 × LRF。
- Momentum (0.937): 动量。帮助加速 SGD 收敛并逃离局部极小,一般保持默认 0.937。
- Weight Decay (0.0005): 权重衰减。L2 正则化系数,防止模型过拟合,通常保持 0.0005。
🌡️ 3. 预热参数 (Warmup)
- Warmup Epochs (3.0): 预热轮数。训练初期用较小的学习率热身,避免初始梯度爆炸。
- Warmup Momentum (0.8): 预热动量。预热阶段使用的动量值,比正常稍低,以稳定初始训练。
- Warmup Bias LR (0.1): 预热偏置学习率。预热阶段,网络偏置项(bias)的学习率倍数,比主体更低,也是一种稳定策略。
✨ 4. 数据增强 (Augmentation)
这些参数用于在训练时实时生成多样化的图片,增强模型泛化能力。
- HSV Hue (0.015): 色调偏移。随机改变图片颜色的色相。
- HSV Saturation (0.7): 饱和度偏移。随机改变颜色的饱和度。
- HSV Value (0.4): 明度偏移。随机改变图片的明暗程度。
- Rotation (0.0): 旋转。图片随机旋转的角度(度数),对于非对称物体可适当开启。
- Translate (0.1): 平移。图片随机水平和垂直平移的比例。
- Scale (0.5): 缩放。图片随机缩放的倍数范围,帮助模型适应不同大小的物体。
- Shear (0.0): 剪切。图片随机剪切变换的程度。
- Perspective (0.0) : 透视变换。随机进行透视变换的程度,模拟视角变化。此项为 0,对计算资源消耗较大。
🧩 5. 正则化 (Regularization)
- Dropout (0.0): 随机丢弃率。在每个训练批次中,随机"丢弃"一部分神经元,是防止过拟合的有效手段。
- Fraction (1.0): 数据集使用比例。用于仅取部分数据快速验证训练流程,正式训练时保持 1.0。
- Rectangular: 矩形训练。在训练时不对图像进行强制正方形缩放,保留原始宽高比,能减少信息变形。通常建议开启。
⚖️ 6. 损失权重 (Loss Weights)
- Box (7.5) : 边界框回归损失(
box_loss)的权重。它是定位精度最重要的人为干预参数。 - Cls (0.5) : 分类损失(
cls_loss)的权重。 - DFL (1.5): 分布焦点损失(Distribution Focal Loss)的权重。专门用于优化边界框位置的预测精度。
- Pose (12.0) : 姿态关键点损失(
pose_loss)的权重。仅在训练姿态估计模型时生效。 - Kobj (2.0) : 关键点存在性损失(
keypoint_obj_loss)的权重。也是仅用于姿态估计任务。
💾 7. 检查点与验证 (Checkpoint and Validation)
- Save Period (Disabled) : 保存周期。每隔多少轮保存一次模型,若为
Disabled,则只保存训练结束时效果最好的模型。 - Validation (Plots): 验证与绘图。在验证集上评估模型并绘制PR曲线、混淆矩阵等图表。
- Save (Resumé) : 断点续训保存。模型不仅会保存在最后的checkpoint,还会额外保存一个用于断点续训的文件。
- Cache (Skip Empty Files): 数据缓存策略。将数据预加载到RAM(内存)中加速训练,"Skip Empty Files"指自动跳过无效图片。
- Only Checked Files: 仅使用已勾选文件。通常配合界面上方的文件列表复选框使用,实现选择性训练。
🎯 训练参数调优建议
根据不同任务,这里有一些基础的调参思路,供你参考:
-
通用目标检测起步
- Batch Size: 在你的GPU显存允许的情况下,设置得越大越好(例如16, 32, 64)。更大的批次通常能带来更稳定的梯度估计。
- 训练轮数 (Epochs) : 可以先设为300,配合
Patience=100的早停机制,让训练在精度不再提升时自动停止。 - Multi Scale: 建议保持开启,它对模型的鲁棒性提升很有帮助。
-
针对特定场景微调
- 小目标检测 (如无人机航拍、细胞检测等):
- 降低
Scale(如0.3):避免过度放大图片,防止小目标被过度拉伸导致失真。 - 调高
Box损失权重(如10.0或更高):让模型更加关注边界框的定位精度。 - Rectangular: 必须开启,有助于保持小目标的原始形状。
- 降低
- 模型收敛不稳定 :
- 调低
LR0(如0.001):降低学习率,让模型更稳定地朝着最优方向更新。 - 延长
Warmup Epochs(如5.0):用更长时间稳定训练初期的梯度。
- 调低
- 小目标检测 (如无人机航拍、细胞检测等):