Toybrick

标题: darknet模型转换时缺少对connected层和avg层的支持吗? [打印本页]

作者: 15992605143    时间: 2020-5-3 21:37
标题: darknet模型转换时缺少对connected层和avg层的支持吗?
发现模型转换工具转换darknet模型时,connected层没有转换到,请问如何解决。

作者: Cat    时间: 2020-5-3 21:58
darknet缺少对connected层和avg层还有[reorg]层的支持
还有自己定义的loss层
这几个层还是比较常用的,期待早日解决
作者: jefferyzhang    时间: 2020-5-4 10:49
把转换时候报的错verbose发出来。
darknet yolov3一直都可以支持,yolov4目前只发现mish层支持不了。

作者: Cat    时间: 2020-5-4 12:14
本帖最后由 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    时间: 2020-5-4 13:08
本帖最后由 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    时间: 2020-5-4 14:54
听说pytorch目前rknn支持得不是很好,我们一直在观望,但darknet我们这里有很多人在用,而且取得了不少进展。
小模型其实就是[avg]层和[connected]层还有reorg层两个支持了就可以用了
大模型yolov4很火,darknet不完全支持的话,yolo4很难跑起来的,这样我担心rknn会越来越落伍于最新技术。
我们这里darknet用的人还是很多的,我们测试了训练效率和推理远比pytorch和tf快,期望能支持。

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

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




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3