Toybrick

转换darknet模型问题

yangyi129

注册会员

积分
50
发表于 2020-3-24 15:08:01    查看: 19774|回复: 10 | [复制链接]    打印 | 显示全部楼层
我使用自己训练好的权重和训练时用的cfg文件转换模型时报错,请问可能是什么原因造成的?错误如下:
--> Building model
Traceback (most recent call last):
  File "rknn_transform_512x512.py", line 27, in <module>
    rknn.build(do_quantization=False, dataset='./dataset_512x512.txt', pre_compile=False)
  File "/home/yy/.local/lib/python3.6/site-packages/rknn/api/rknn.py", line 220, in build
    inputs = self.rknn_base.net.get_input_layers()
AttributeError: 'NoneType' object has no attribute 'get_input_layers'
由于darknet没有MobileNet的DW_CONV层,因此我在cfg文件内设置conv层的group以替代DW_CONV层,如下:
[convolutional]
group=64
batch_normalize=1
filters=64   
size=3
stride=1
pad=1
activation=relu
但是我看转换模型时生成的.cfg.dat文件里的group_number依然是1。可能是这个原因造成的模型转换失败吗?


回复

使用道具 举报

yangyi129

注册会员

积分
50
 楼主| 发表于 2020-3-24 15:17:23 | 显示全部楼层
使用的是rknn-toolkit-V1.3.0
下载官方的yolov3的demo模型转换成功。
回复

使用道具 举报

yangyi129

注册会员

积分
50
 楼主| 发表于 2020-3-24 17:12:54 | 显示全部楼层
找到原因了,就是因为卷积的group_number=1造成的。
我配置文件修改了groups,所以训练生成的权重尺寸是1x256x3x3。但是转换代码没有读入我的修改,group_number还是1导致卷积的权重尺寸是256x256x3x3。
请问应该如何解决这个问题?
回复

使用道具 举报

jefferyzhang

版主

积分
12848
发表于 2020-3-25 09:03:26 | 显示全部楼层
dw卷积目的是稍微降低精度的情况下提高速度,但我们npu不需要这个,我们npu常规卷积的运算速度远大于dw卷积,不需要多此一举用dw卷积,又降精度又提高不了速度。
回复

使用道具 举报

jefferyzhang

版主

积分
12848
发表于 2020-3-25 09:06:49 | 显示全部楼层
具体查看rknntoolkit troubleshott文档里最后一章,网络设计建议。我们NPU对3x3普通卷积速度是极快的。
回复

使用道具 举报

yangyi129

注册会员

积分
50
 楼主| 发表于 2020-3-25 09:37:38 | 显示全部楼层
jefferyzhang 发表于 2020-3-25 09:03
dw卷积目的是稍微降低精度的情况下提高速度,但我们npu不需要这个,我们npu常规卷积的运算速度远大于dw卷积 ...

那样模型大小不是会增加吗?请问RK3399Pro的模型大小上限是多少呢?
回复

使用道具 举报

jefferyzhang

版主

积分
12848
发表于 2020-3-25 09:55:41 | 显示全部楼层
yangyi129 发表于 2020-3-25 09:37
那样模型大小不是会增加吗?请问RK3399Pro的模型大小上限是多少呢?

NPU有2G独立内存
回复

使用道具 举报

Devin

中级会员

积分
452
发表于 2020-3-25 13:54:55 | 显示全部楼层
jefferyzhang 发表于 2020-3-25 09:03
dw卷积目的是稍微降低精度的情况下提高速度,但我们npu不需要这个,我们npu常规卷积的运算速度远大于dw卷积 ...

那我把mobilenetssd中所有dw conv层改成conv后,精度也会涨一点吧,同时转到rk上也不会影响速度是嘛
回复

使用道具 举报

jefferyzhang

版主

积分
12848
发表于 2020-3-25 14:18:47 | 显示全部楼层
Devin 发表于 2020-3-25 13:54
那我把mobilenetssd中所有dw conv层改成conv后,精度也会涨一点吧,同时转到rk上也不会影响速度是嘛 ...

理论上是这样的。。
去掉dw conv,他就不叫mobilenet了。。。应该就是个vgg吧
回复

使用道具 举报

Devin

中级会员

积分
452
发表于 2020-3-27 15:35:40 | 显示全部楼层
jefferyzhang 发表于 2020-3-25 14:18
理论上是这样的。。
去掉dw conv,他就不叫mobilenet了。。。应该就是个vgg吧 ...

哈哈,有空试试效果和推理速度
回复

使用道具 举报

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

本版积分规则

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


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