Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix FP32 TensorRT model export #8046

Merged
merged 2 commits into from
May 31, 2022
Merged

Conversation

SahilChachra
Copy link
Contributor

@SahilChachra SahilChachra commented May 30, 2022

Problem :- While exporting model as TensorRT, the code was using FP16 precision even without using "--half" flag with the export command. Hence, was unable to export FP32 precision models with the export command.

Fix :- Passed "half" variable to the if condition which means we will get FP16 model only if user has passed the "half" flag and the hardware supports FP16. Also modified the logger code to print appropriate precision being used. Just adding "half" variable, the bug has been resolved. Thanks πŸ˜„

Have tested the code for FP16 and FP32 both. It's working.

Attaching screenshots.
yolov5_trt_error

After fixing the code, we get,
yolov5_trt_fp32export_fixed

πŸ› οΈ PR Summary

Made with ❀️ by Ultralytics Actions

🌟 Summary

Improved TensorRT export flexibility regarding precision modes.

πŸ“Š Key Changes

  • Adjusted the logging message to reflect the precision of the engine being built (FP16 or FP32).
  • Conditional use of FP16 mode now also depends on the half flag.

🎯 Purpose & Impact

  • Purpose: To ensure that the TensorRT engine uses the appropriate precision based on the model's requirements and the user's choice, providing better control over the trade-off between speed and accuracy.
  • Impact: Users will have clearer information about the precision mode used during the engine build process and can influence the precision mode with the half setting, potentially improving performance on compatible hardware. πŸš€

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

πŸ‘‹ Hello @SahilChachra, thank you for submitting a YOLOv5 πŸš€ PR! To allow your work to be integrated as seamlessly as possible, we advise you to:

  • βœ… Verify your PR is up-to-date with upstream/master. If your PR is behind upstream/master an automatic GitHub Actions merge may be attempted by writing /rebase in a new comment, or by running the following code, replacing 'feature' with the name of your local branch:
git remote add upstream https://github.com/ultralytics/yolov5.git
git fetch upstream
# git checkout feature  # <--- replace 'feature' with local branch name
git merge upstream/master
git push -u origin -f
  • βœ… Verify all Continuous Integration (CI) checks are passing.
  • βœ… Reduce changes to the absolute minimum required for your bug fix or feature addition. "It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is." -Bruce Lee

@glenn-jocher glenn-jocher merged commit 6dd6aea into ultralytics:master May 31, 2022
@glenn-jocher
Copy link
Member

@SahilChachra I'd defaulted all TRT to FP16, but you're right, this is probably more aligned with the expected behavior here.

@glenn-jocher
Copy link
Member

@SahilChachra PR is merged. Thank you for your contributions to YOLOv5 πŸš€ and Vision AI ⭐

@SahilChachra
Copy link
Contributor Author

Thankyou @glenn-jocher πŸ˜ƒ

tdhooghe pushed a commit to tdhooghe/yolov5 that referenced this pull request Jun 10, 2022
Fixed FP32 TRT  model export

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
ctjanuhowski pushed a commit to ctjanuhowski/yolov5 that referenced this pull request Sep 8, 2022
Fixed FP32 TRT  model export

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
@glenn-jocher
Copy link
Member

@SahilChachra you're welcome! The YOLO community and the Ultralytics team have put in a lot of effort to make YOLOv5 a success. Thank you for being a part of it! If you have any more questions or feedback, feel free to ask.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants