Yolov4部署到ZYNQ系列2-重新训练darknet框架下的Yolov4


前言

花了一个月不到的时间单枪匹马把Yolov4模型部署到ZYNQ Ultrascale+ MPSOC上,这次把一整个过程和关键的几个要点都按照系列文章的形式展开,确保可以通过系列文章的形式完美复现我的工作。
本节内容包括重新训练darknet框架下的Yolov4


一、为什么重新训练darknet?

用之前DOTA数据集上训练Yolov4(darknet框架)在量化、编译结束后,部署到开发板上出现下述error。解释一下就是Yolov4里面存在XIR(Xilinx中间表示形式)未定义的操作符,也就是激活函数softplus。
在这里插入图片描述
回到Yolov4的网络结构图,网上随便找的。其中有个CBM模块,M表示mish激活函数。
在这里插入图片描述
而mish激活函数可以表达成如下的形式:
在这里插入图片描述
所以为什么会出现softplus的提示信息也就可以解释了,那又产生一个新问题,为什么会出现没有定义的情况,或者说,我们凭什么确定softplus没有被定义。这个问题需要回到Vitis-AI手册,在手册中我们可以看到量化并不支持softplus激活函数,所以我们的解决方案就是将Yolov4内的mish激活函数替换为leakyrelu,之所以可以这么做,其实主要还是可以接受两个激活函数的波形相似,当然最有力的支持证据还是在于我替换为leakyrelu函数以后得到的模型在服务器端、开发板都显示好的检测效果。
在这里插入图片描述

二、改进Yolov4结构

1.其他如常

darknet的训练依旧参照我在“DOTA与Yolov4(-Tiny)”中darknet那一节,但是需要事先参照接下来的第2节和第3节修改部分内容。

2.修改cfg文件

修改所有mish函数为leaky函数。

3.加快运行

./darknet detector train cfg/voc.data cfg/yolov4-custom-nomish.cfg yolov4.conv.137 -map -gpus 0,1,2 -dont_show

配合修改cfg文件内的

learning_rate=0.00087
burn_in=4000
max_batches = 30000
policy=steps
steps=24000,27000
scales=.1,.1

三、改进Yolov4结构后的推测效果

推测前
在这里插入图片描述
推测后
在这里插入图片描述


总结

重新调整了Yolov4的网络结构!

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DentionY

谢谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值