Toybrick

darknet模型转换时缺少对connected层和avg层的支持吗?

15992605143

中级会员

积分
303
楼主
发表于 2020-5-3 21:37:47    查看: 6735|回复: 5 | [复制链接]    打印 | 只看该作者
发现模型转换工具转换darknet模型时,connected层没有转换到,请问如何解决。
回复

使用道具 举报

Cat

新手上路

积分
24
沙发
发表于 2020-5-3 21:58:23 | 只看该作者
darknet缺少对connected层和avg层还有[reorg]层的支持
还有自己定义的loss层
这几个层还是比较常用的,期待早日解决
回复

使用道具 举报

jefferyzhang

版主

积分
13007
板凳
发表于 2020-5-4 10:49:44 | 只看该作者
把转换时候报的错verbose发出来。
darknet yolov3一直都可以支持,yolov4目前只发现mish层支持不了。
回复

使用道具 举报

Cat

新手上路

积分
24
地板
发表于 2020-5-4 12:14:48 | 只看该作者
本帖最后由 Cat 于 2020-5-4 12:16 编辑

我们不是用的yolov4,而是换了一个简单的双支路输出的网,因为yolov3和yolov4需要预测的输出都是全卷积阵列,而我们的网络最后需要预测一个nx1x1的tensor
所以我们用了avg层或者connected层试图把卷积层输出的CxWxH集合成一个nx1x1的tensor
例子里面的yolov3是可以转换的
以下是yolov3里面出现的所有的层,转换程序都是认的
[convolutional]  stride=1~2都行
[upsample]
[route]
[shortcut]
[yolo]

我们自己设计cfg在电脑运行时没有任何问题的,不同之处在于我们在两个输出层之前,多了
[avg]层或者[connected]层

但是似乎转换程序不认识,avg层或者connected层,我们看不到darknet转换程序的.so源码,能否支持一下?

注:因为输入图像不是正方形,如果用卷积层和maxpooling层最后也不一定能得到nx1x1的tensor,所以只能求助于avg层或者connected层
回复

使用道具 举报

jefferyzhang

版主

积分
13007
5#
发表于 2020-5-4 13:08:20 | 只看该作者
本帖最后由 jefferyzhang 于 2020-5-4 13:10 编辑
Cat 发表于 2020-5-4 12:14
我们不是用的yolov4,而是换了一个简单的双支路输出的网,因为yolov3和yolov4需要预测的输出都是全卷积阵列 ...

darknet客户主要用来做yolo,我们这里没有一个客户用它来做其他模型,所以想让NPU部门花时间去支持一个没人用的框架会有点困难。
建议:
1. 转用tensorflow或者pytorch来做。
2. 将你的模型转成onnx后再转rknn试试

回复

使用道具 举报

Cat

新手上路

积分
24
6#
发表于 2020-5-4 14:54:09 | 只看该作者
听说pytorch目前rknn支持得不是很好,我们一直在观望,但darknet我们这里有很多人在用,而且取得了不少进展。
小模型其实就是[avg]层和[connected]层还有reorg层两个支持了就可以用了
大模型yolov4很火,darknet不完全支持的话,yolo4很难跑起来的,这样我担心rknn会越来越落伍于最新技术。
我们这里darknet用的人还是很多的,我们测试了训练效率和推理远比pytorch和tf快,期望能支持。

毕竟是单节段的实时视频,pytorch的和tf的开源项目基本上都是多阶段的速度很慢,难以胜任实时视频
单节段目标检测yolo系列是王者,多阶段基本都没法实时

既然宣传里是支持darknet的而不是只支持yolo,那么期望能支持全套的darknet
我们全力支持rknn的生态链发展,期待rknn能有广阔的市场应用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表