yolov5 icon indicating copy to clipboard operation
yolov5 copied to clipboard

How to make yolo11 training with added P2 layer converge?

Open starzero-hhh opened this issue 9 months ago • 4 comments

Search before asking

  • [x] I have searched the YOLOv5 issues and discussions and found no similar questions.

Question

Hello, I would like to ask a question about the training strategy, I am using yolo11 model I want to optimize the small target detection I now add P2 layer in yolo11 and then remove the P5 layer, normal can be trained up, I use layered optimization except the newly added P2 layer alone using the learning rate of 5e-4 optimization the other original existence of the layer using the learning rate of 1e-4 to optimize, I put the pre-training weights I loaded the pre-training weights yolo11n.pt into the old layer, now it can be trained but, box_loss and pose_loss keep jumping with very little downward trend, how do I need to optimize?

Image

Additional

No response

starzero-hhh avatar Mar 11 '25 13:03 starzero-hhh

👋 Hello @starzero-hhh, thank you for your interest in YOLOv5 🚀! It looks like you're working on a customized YOLO model, which is very exciting! Please visit our ⭐️ Tutorials to get started, where you can find quickstart guides for tasks like Custom Data Training and advanced concepts like Hyperparameter Evolution. These resources might provide some additional insights for your optimization strategy.

If this is a 🐛 Bug Report, please provide a minimum reproducible example (MRE) to help us debug it. This could include a snippet of your modified model code, your training script, or any other relevant details.

If this is a ❓ Question or a custom training inquiry, please provide as much information as possible, including:

  • Detailed training configuration (e.g., learning rates, optimizer settings, etc.)
  • Dataset details and examples
  • Training logs and metrics, if available
  • Explanation of how the P2 layer was added and P5 layer removed

Requirements

Ensure your environment meets the following requirements: Python>=3.8.0 with all requirements.txt installed, including PyTorch>=1.8. To set up your environment:

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

Environments

YOLOv5 supports these verified environments for training and inference:

Status

YOLOv5 CI

If this badge is green, all YOLOv5 GitHub Actions Continuous Integration (CI) tests are currently passing. CI tests verify correct operation of YOLOv5 training, validation, inference, export and benchmarks on macOS, Windows, and Ubuntu every 24 hours and on every commit.

This is an automated response, but an Ultralytics engineer will review your inquiry and assist you soon. Thank you for your patience! 😊

UltralyticsAssistant avatar Mar 11 '25 13:03 UltralyticsAssistant

@starzero-hhh for training stability when modifying YOLO11 architecture like adding P2 layers, we recommend these steps:

  1. Learning Rate Adjustment: Start with a lower base LR (1e-4 → 3e-5) and use linear LR warmup for 100-500 iterations to stabilize new layer training. The current 5e-4 for new layers might be too aggressive initially.

  2. Weight Initialization: Ensure new P2 head layers are properly initialized. Use model.model[-1].apply(init_weights) after modifying architecture, where init_weights applies Kaiming initialization.

  3. Anchor Adaptation: Verify your anchors match the new P2 layer scale using utils.autoanchor.check_anchors(dataset, model=model). Small objects typically require anchors < 10 pixels.

  4. Gradient Clipping: Add gradient_clip_val: 1.0 in your training config to prevent exploding gradients in new layers.

For detailed guidance on architecture modifications, see the Ultralytics YOLO11 documentation. If issues persist, please provide a minimum reproducible example per our bug report guidelines.

pderrenger avatar Mar 12 '25 06:03 pderrenger

Thank you for your valuable comments, I will take them on board to train my model!  

额... @.***

 

------------------ 原始邮件 ------------------ 发件人: "Paula @.>; 发送时间: 2025年3月12日(星期三) 下午2:05 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [ultralytics/yolov5] How to make yolo11 training with added P2 layer converge? (Issue #13530)

星零-hhh为了在修改YOLO11架构(如添加P2层)时保持训练稳定性,我们建议以下步骤:

学习率调整从低基数LR(1e-4→3e-5)开始,并使用线性LR热身进行100-500次迭代,以稳定新层训练。目前用于新层的5e-4最初可能过于激进。

权重初始化:确保新的P2头层正确初始化。使用model.model[-1].apply(init_weights)在修改架构后,其中初始化权重适用于启明初始化。

锚适应:使用以下方法验证锚是否符合新的P2层尺度utils.autoanchor.check_anchors(数据集,model=model). 小对象通常需要<10像素的锚。

渐变剪裁:添加梯度_clip_val:1.0在您的训练配置中,以防止新层中的梯度爆炸。

有关架构修改的详细指导,请参阅Ultralytics YOLO10文档. 如果问题仍然存在,请提供一个最小可重现示例根据我们的错误报告指南。

直接回复此邮件,在GitHub上查看它,或取消订阅. @.*** > pderrenger留下评论(ultralytics/yolov5#13530)

星零-hhh为了在修改YOLO11架构(如添加P2层)时保持训练稳定性,我们建议以下步骤:

学习率调整从低基数LR(1e-4→3e-5)开始,并使用线性LR热身进行100-500次迭代,以稳定新层训练。目前用于新层的5e-4最初可能过于激进。

权重初始化:确保新的P2头层正确初始化。使用model.model[-1].apply(init_weights)在修改架构后,其中初始化权重适用于启明初始化。

锚适应:使用以下方法验证锚是否符合新的P2层尺度utils.autoanchor.check_anchors(数据集,model=model). 小对象通常需要<10像素的锚。

渐变剪裁:添加梯度_clip_val:1.0在您的训练配置中,以防止新层中的梯度爆炸。

有关架构修改的详细指导,请参阅Ultralytics YOLO10文档. 如果问题仍然存在,请提供一个最小可重现示例根据我们的错误报告指南。

直接回复此邮件,在GitHub上查看它,或取消订阅. @.*** >

starzero-hhh avatar Mar 12 '25 08:03 starzero-hhh

Thank you for your feedback! If you continue to experience convergence issues after implementing the suggested adjustments, we recommend creating a minimum reproducible example using our bug report guidelines so we can investigate further. For additional insights on architecture modifications and training optimization, see our YOLO model customization documentation.

The Ultralytics team and community are happy to help troubleshoot specific implementation details if you share a reproducible example. 🚀

pderrenger avatar Mar 12 '25 16:03 pderrenger

👋 Hello there! We wanted to give you a friendly reminder that this issue has not had any recent activity and may be closed soon, but don't worry - you can always reopen it if needed. If you still have any questions or concerns, please feel free to let us know how we can help.

For additional resources and information, please see the links below:

  • Docs: https://docs.ultralytics.com
  • HUB: https://hub.ultralytics.com
  • Community: https://community.ultralytics.com

Feel free to inform us of any other issues you discover or feature requests that come to mind in the future. Pull Requests (PRs) are also always welcomed!

Thank you for your contributions to YOLO 🚀 and Vision AI ⭐

github-actions[bot] avatar Oct 10 '25 00:10 github-actions[bot]