-
Notifications
You must be signed in to change notification settings - Fork 8k
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
YOLO v4 for VPU #5467
Comments
EfficientNetB0-Yolo shows good result AP (MSCOCO) and 11 FPS on VPU even for: 416x416, batch=1, async=1 (sync-mode), so AP50/Inference_time is much higher for EfficientNetB0-Yolo than for Yolov3-tiny: #5079 So we should try to use EfficientNet-b3-lite without SE, and should use neck/head without PRN (because it slows down inference on VPU), it is proved that it is more efficient for VPU (Google-coral TPU-edge): https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet/lite MixNet shows better accuracy/BFLOPS than EfficientNetB0, but another question is how well does it can be parallelized: #4203 May be GhostNet is more optimal than MobieNetv3. |
It would also be interesting to consider a pruned version of EfficientNet (https://arxiv.org/abs/2002.08258) Apparently "A pruned EfficientNet-B1 may be more efficient than EfficientNet-B0." Maybe this can push AP a little further. Also, I guess the EfficientNet-b3-lite-YOLO option for VPUs might be interesting (with ReLU6 maybe?). There is also EfficientNets-Edge TPU optimized specifically for the Coral Edge TPU, which might be very good in this specific case (don't know how it may perform on other VPU). Anyways, thank you for the response :) |
Pruning usually gives the same results as training with initially fewer weights. And in the EfficientNet, the optimal number of weights has already been chosen using AutoML MNAS. ReLU6 - should be used only if you want to quantize it to INT8. |
Looking to the comparison of EfficientNet B1 Knapsack Pruned and B0, looks like the pruned B1 could be used instead of normal B0. As my original question was answered, I am closing it |
@ankandrew It seems there was something wrong during first testing of EfficientNetB0-Yolo on VPU. I re-tested many models. So it seems that EfficientNet isn't suitable even for VPU )
So even YOLOv4 (Leaky) more suitable for VPU than EfficientNet. |
@AlexeyAB I wouldn't have exptected that bad performance of EfficientNet-Yolo, any thoughts why YOLO v4 is performing much better in terms of accuracy? |
@ankandrew Are you abount accuracy or FPS? About accuracy:
That's why Google doesnt use Swish, SE, Grouped-conv for TPU-edge: https://ai.googleblog.com/2019/08/efficientnet-edgetpu-creating.html |
Just for curious are there any plans to implement YOLO v4 specially for Coral Edge TPU? Thanks for the update 👍 |
I am also interested! |
In the paper I noticed that for VPU some good candidates are EfficientNet-lite, MixNet, GhostNet and MobileNetV3. Did it gave good results these as backbones for YOLO v4 and, decrease the inference time considerably?
The text was updated successfully, but these errors were encountered: