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

Add --half support for OpenVINO exports #7615

Merged
merged 3 commits into from
Apr 28, 2022

Conversation

djmmoss
Copy link
Contributor

@djmmoss djmmoss commented Apr 27, 2022

This PR enables exporting OpenVINO models with the FP16 data type.

Size and Accuracy comparison between OpenVINO FP32 and FP16 versions of yolov5n6:
image

🛠️ PR Summary

Made with ❤️ by Ultralytics Actions

🌟 Summary

Enhancements to model exporting for OpenVINO with FP16 support.

📊 Key Changes

  • Added a half parameter to export_openvino function to allow exporting models in FP16 precision.
  • Included --data_type argument in the OpenVINO Model Optimizer command to support FP16 or FP32 during export.
  • Adjusted assertion to allow --half usage with OpenVINO (xml) export.

🎯 Purpose & Impact

  • 🚀 Purpose: To enable YOLOv5 models to be exported for OpenVINO in a more memory-efficient FP16 format, when compatible hardware is available.
  • 💻 Impact for Users: Users can now reduce the computational requirements of their YOLOv5 models when deploying to hardware supporting FP16, potentially improving performance. This change is particularly beneficial for edge computing scenarios where resources are limited.

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 @djmmoss, 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
Copy link
Member

@djmmoss it works! Verified no accuracy loss also:
Screen Shot 2022-04-27 at 5 20 27 PM

@glenn-jocher glenn-jocher changed the title feature(export): add half support for openvino models Add --half support for OpenVINO exports Apr 28, 2022
@glenn-jocher glenn-jocher merged commit 177da7f into ultralytics:master Apr 28, 2022
@glenn-jocher
Copy link
Member

@djmmoss PR is merged. Thank you for your contributions to YOLOv5 🚀 and Vision AI ⭐

@djmmoss djmmoss deleted the djmmoss/openvino_half branch April 28, 2022 04:22
tdhooghe pushed a commit to tdhooghe/yolov5 that referenced this pull request Jun 10, 2022
* feature(export): add half support for openvino models

* Update export.py

* Update export.py

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
BjarneKuehl pushed a commit to fhkiel-mlaip/yolov5 that referenced this pull request Aug 26, 2022
* feature(export): add half support for openvino models

* Update export.py

* Update export.py

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
ctjanuhowski pushed a commit to ctjanuhowski/yolov5 that referenced this pull request Sep 8, 2022
* feature(export): add half support for openvino models

* Update export.py

* Update export.py

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
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