Toybrick

标题: resnet 分类网络不支持 [打印本页]

作者: czcl    时间: 2022-7-19 14:14
标题: resnet 分类网络不支持
使用套件版本V1.6.0
转换 模型代码,使用darknet转rknn
分别测试检测网络和残差网络
检测网络使用yolov3 成功
残差网络使用resnet50 失败
失败原因日志如下:
--> Loading model
W Still not implement cost shape engine
E Do not support the shortcut inputs: [0, 32, 32, 512] [0, 64, 64, 256]
W ----------------Warning(1)----------------
E Catch exception when loading darknet model: ./cifar/cifar.cfg!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 282, in rknn.api.rknn_base.RKNNBase.load_darknet
E   File "rknn/base/RKNNlib/RK_nn.py", line 125, in rknn.base.RKNNlib.RK_nn.RKnn.load_darknet
E   File "rknn/base/RKNNlib/converter/convert_darknet.py", line 669, in rknn.base.RKNNlib.converter.convert_darknet.Converter.converte
E   File "rknn/base/RKNNlib/converter/convert_darknet.py", line 807, in rknn.base.RKNNlib.converter.convert_darknet.Converter.build_graph
E   File "rknn/base/RKNNlib/converter/convert_darknet.py", line 616, in rknn.base.RKNNlib.converter.convert_darknet.NetGenerator.add_layer
E   File "rknn/base/RKNNlib/converter/convert_darknet.py", line 508, in rknn.base.RKNNlib.converter.convert_darknet.ShortcutGenerator.gen
E   File "rknn/api/rknn_log.py", line 312, in rknn.api.rknn_log.RKNNLog.e
E ValueError: Do not support the shortcut inputs: [0, 32, 32, 512] [0, 64, 64, 256]
Load weights failed!



两个网络模型都使用darknet训练,分别在PC端验证通过
yolov3 和 resnet50 都包含shortcut,发现yolov3 能够正常转换,但是resnet50不行,请问分类网络不支持shortcut网络层么,我看文档里面是支持的呀

文档内容如下

## Darknet OPs supported by RKNN
The list of Darknet OPs supported by RKNN Version 1.6.0 is as follows:

| **Operators** |
|---|
|batchnormalize|
|convolutional|
|depthwise_convolutional|
|pooling|
|fullconnect|
|leakyrelu|
|concat|
|add|
|upsampling|
|reorg|
|noop|
|route|
|region|
|shortcut|
|multiply|
|swish|
|logistic|
|mish|
|softmax|



作者: jefferyzhang    时间: 2022-7-19 18:22
支持,请先把工具升级到最新版本,当前版本是1.7.1.
转不过可以试试先转onnx再转rknn
作者: czcl    时间: 2022-7-21 11:37
jefferyzhang 发表于 2022-7-19 18:22
支持,请先把工具升级到最新版本,当前版本是1.7.1.
转不过可以试试先转onnx再转rknn ...

更换最新的1.7.1 问题依旧存在

先转onnx的方式没有成功,因为darknet转onnx 有些网络层不支持转换,网上的转换脚本大多支持检测网络不支持分类网络转换,有推荐的转换脚本么?

另外为什么不能直接转呢,一定要转换成onnx才能转rknn么
作者: jefferyzhang    时间: 2022-7-21 12:04
本帖最后由 jefferyzhang 于 2022-7-21 12:13 编辑
czcl 发表于 2022-7-21 11:37
更换最新的1.7.1 问题依旧存在

先转onnx的方式没有成功,因为darknet转onnx 有些网络层不支持转换,网上 ...

因为市面上框架这么多,每个框架又那么多版本,rknn怎么可能支持的过来,onnx是公认最通用的中间框架,rknn只需要支持onnx就可以实现所有其他框架的支持。





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