-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
[VTA] YoloV3 Support #4887
[VTA] YoloV3 Support #4887
Conversation
After this patch, I can run Yolov3 tiny on VTA(simulator + FPGA), but it still have some accuracy issue, It may caused by test application parameter usage or VTA existing logic, I am not very sure, at same time please kindly advise if i missing any logic for Yolov3-tiny support in this patch. |
FYI, |
small frame accuracy issue fixed. |
Hi @huajsj, thanks for adding YoloV3 support for VTA. Do you think that along with this PR you can also construct a tutorial similar to this one: https://github.com/apache/incubator-tvm/blob/master/vta/tutorials/frontend/deploy_vision_on_vta.py We could have one tutorial called deploy_classification_on_vta.py, and deploy_detection_on_vta.py to differentiate between object classification vs. detection. In addition, this will exercise compilation support for Yolo to make sure that support does not break. |
Hi @tmoreau89 , Thanks for the follow up , sure, would work for a tutorial and upload soon. Regards
|
Since the python script deploy_vision_on_vta.py exists in the vta directory already, how about renaming those to deploy_classification.py and deploy_detection.py? |
@liangfu that is correct; we'd need to rename |
Sorry, I meant removing the '_on_vta' suffix in the file names. |
Oh my bad, I read your comment too quickly; I like your suggestion and agree; shortening the filename makes sense! |
just add the tutorial which work good in simulator, but not work properly in FPGA, still in the process of trouble shooting. |
I'm glad to hear that. For now, I suggest keep an eye on free CMA memory space on the FPGA device. |
@huajsj which platform are you using for the FPGA demo? |
Hi @tmoreau89, I am using pynq board for testing. |
Issue: YoloV3 use some operator and logic that not get good support by existing vta logic, like nn.pad, upsample, and 255 output channel. Solution: add related logic to let darknet YoloV3 can running on VTA
after apply AutoTVM configure file, now we can run Yolov3-tiny tutorial correctly on PYNQ board, the autotvm configure file in this pull request tlc-pack/tophub#17 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested this on PYNQ board, it worked correctly as expected. Thanks @huajsj for the great work!
I left some comment in the code, otherwise LGTM.
Hi @liangfu, nice to know the tutorial worked in your environment, and thanks for the kindly follow up , all review comments get addressed, please check. |
Would you please also rename the files as requested above, see #4887 (comment) |
sure, already changed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@tmoreau89 , if you have time , could you help to have reivew? thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Hua for this great addition to TVM/VTA! I've left some comments to address, and then the PR is good to go!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @huajsj, LGTM
@tmoreau89 , Thanks for the kindly follow up, 'tlc-pack/tophub#17' is the the default Autotvm configure file for Yolov3 tiny, could you help to review this patch too? thanks. |
Thanks @huajsj , I merged tlc-pack/tophub#17 |
Thank you @huajsj @cbalint13 @liangfu , the code has been merged! |
* [VTA] YoloV3 Support Issue: YoloV3 use some operator and logic that not get good support by existing vta logic, like nn.pad, upsample, and 255 output channel. Solution: add related logic to let darknet YoloV3 can running on VTA * Fix small(0, or 1 heigh/width) detect frame issue. * add yolov3-tiny turtorial * add os import * address review comments. * rename tutorial file with a short name. * rename deploy_vision_on_vta.py into deploy_classification.py. * address review comment, fix plint eror in deploy_detection.py
* [VTA] YoloV3 Support Issue: YoloV3 use some operator and logic that not get good support by existing vta logic, like nn.pad, upsample, and 255 output channel. Solution: add related logic to let darknet YoloV3 can running on VTA * Fix small(0, or 1 heigh/width) detect frame issue. * add yolov3-tiny turtorial * add os import * address review comments. * rename tutorial file with a short name. * rename deploy_vision_on_vta.py into deploy_classification.py. * address review comment, fix plint eror in deploy_detection.py
* [VTA] YoloV3 Support Issue: YoloV3 use some operator and logic that not get good support by existing vta logic, like nn.pad, upsample, and 255 output channel. Solution: add related logic to let darknet YoloV3 can running on VTA * Fix small(0, or 1 heigh/width) detect frame issue. * add yolov3-tiny turtorial * add os import * address review comments. * rename tutorial file with a short name. * rename deploy_vision_on_vta.py into deploy_classification.py. * address review comment, fix plint eror in deploy_detection.py
* [VTA] YoloV3 Support Issue: YoloV3 use some operator and logic that not get good support by existing vta logic, like nn.pad, upsample, and 255 output channel. Solution: add related logic to let darknet YoloV3 can running on VTA * Fix small(0, or 1 heigh/width) detect frame issue. * add yolov3-tiny turtorial * add os import * address review comments. * rename tutorial file with a short name. * rename deploy_vision_on_vta.py into deploy_classification.py. * address review comment, fix plint eror in deploy_detection.py
* [VTA] YoloV3 Support Issue: YoloV3 use some operator and logic that not get good support by existing vta logic, like nn.pad, upsample, and 255 output channel. Solution: add related logic to let darknet YoloV3 can running on VTA * Fix small(0, or 1 heigh/width) detect frame issue. * add yolov3-tiny turtorial * add os import * address review comments. * rename tutorial file with a short name. * rename deploy_vision_on_vta.py into deploy_classification.py. * address review comment, fix plint eror in deploy_detection.py
Issue:
YoloV3 use some operator and logic that not get good support by
existing vta logic, like nn.pad, upsample, and 255 output channel.
Solution:
add related logic to let darknet YoloV3 can running on VTA
@tmoreau89 ,could you help to do a review? thanks.