yolov5检测模型在NVIDIDA芯片和rk1808芯片上的量化部署

我要开发同款
yohannxu2024年05月21日
15阅读
开发技术torch、图像识别、深度学习
所属分类pytorch、yolov5、RK1808、模型部署、模型量化

作品详情

1. 对 yolov5 进行算子替换,使用 Conv 算子替换 Focus 算子,使用 ReLU 算子替换 SiLU 算子,提高硬件利用率。2. 对 yolov5 进行算子优化,调整 BottleneckCSP 模块中 Conv 算子、Concat 算子、BN 算子和 ReLU算子的顺序,进行算子融合,提高推理速度。3. 在 NVIDIA 芯片上,对 Conv 算子的权重使用 per-channel 对称量化,对激活值使用 per-tensor 对称量化。将量化感知训练后的模型导出为 onnx,量化参数存储在 QuantizeLinear 和 DequantizeLinear算子中,使用 TensorRT 进行转换和推理。4. 在瑞芯微 rk1808 芯片上,对 Conv 算子的权重和激活值均使用 per-tensor 非对称量化。将量化感知训练后的模型导出为 onnx,将 Conv 算子、BN 算子和 ReLU 算子进行融合,融合后的新算子为 QConv 算子,将量化参数存储在该算子中;将 Conv 算子和 BN 算子的权重进行合并,得到QConv 算子的 weight 和 bias,并将 weight 计算为 uint8 格式,bias 计算为 int16 格式;将 Add 算子替换为 QAdd 算子,将量化参数存储在该算子中;将 kernel size 为 13 的 MaxPool 算子分解为 3 个kernel size 为 5 的 MaxPool 算子,将 kernel size 为 9 的 MaxPool 算子分解为 2 个 kernel size 为 5 的MaxPool 算子,加快推理速度;使用 rknn-toolkit 进行模型转换和推理。5. yolov5 检测模型在 NVIDIA、瑞芯微 rk1808芯片上进行 int8 量化部署后,mAP掉点情况均在 1 个点以内。
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论