Toybrick

标题: onnx转rknn报错 [打印本页]

作者: liuwenhua    时间: 6 天前
标题: onnx转rknn报错
E:\usb_test\example\rknn_win_env\lib\site-packages\onnx_tf\common\__init__.py:87: UserWarning: FrontendHandler.get_outputs_names is deprecated. It will be removed in future release.. Use node.outputs instead.
  warnings.warn(message)
E Catch exception when loading onnx model: ./model_openpose.onnx!
E Traceback (most recent call last):
E   File "rknn\api\rknn_base.py", line 510, in rknn.api.rknn_base.RKNNBase.load_onnx
E   File "rknn\base\RKNNlib\converter\convert_onnx.py", line 494, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx.__init__
E   File "rknn\base\RKNNlib\converter\convert_onnx.py", line 502, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx.__init__
E   File "rknn\base\RKNNlib\converter\onnx_util.py", line 154, in rknn.base.RKNNlib.converter.onnx_util.ONNXProto_Util.optim_model
E   File "E:\usb_test\example\rknn_win_env\lib\site-packages\onnx\optimizer.py", line 55, in optimize
E     optimized_model_str = C.optimize(model_str, passes)
E IndexError: invalid unordered_map<K, T> key
Load model failed!


作者: jefferyzhang    时间: 6 天前
先试下你的onnx模型能不能被onnx正确加载和推理
作者: undefined    时间: 6 天前
rknn_toolkit调用了ONNX的optimizer进行图优化,optimizer需要读取权重值,因此需要把所有的初始化权重都放到ONNX计算图的input中。
具体pytorch是export时候设置keep_initializers_as_inputs=True
作者: liuwenhua    时间: 6 天前
jefferyzhang 发表于 2020-5-20 16:30
先试下你的onnx模型能不能被onnx正确加载和推理

onnx模型是可以正常推理的
作者: jefferyzhang    时间: 6 天前
请提供:
rknntoolkit版本号
onnx版本号
onnx模型和转换脚本。

(如果你rknntoolkit不是在1.3.2上测试的,请更新rknntoolkit到1.3.2测试后再报bug)
作者: liuwenhua    时间: 6 天前
jefferyzhang 发表于 2020-5-20 16:48
请提供:
rknntoolkit版本号
onnx版本号

rknntoolkit是1.3.2
onnx是1.4.1
模型链接  链接:https://pan.baidu.com/s/1OJXfVwToJCpsqxcoGJK_kg
提取码:5qmh

转换代码如下

from rknn.api import RKNN
import cv2
import time
import numpy as np

if __name__ == '__main__':

    # Create RKNN object
    rknn = RKNN(verbose=True)
   
    # pre-process config
    print('--> config model')
    # 配置模型输入,用于NPU对数据输入的预处理
    # channel_mean_value='0 0 0 255',那么模型推理时,将会对RGB数据做如下转换
    # (R - 0)/255, (G - 0)/255, (B - 0)/255。推理时,RKNN模型会自动做均值和归一化处理
    # reorder_channel=’0 1 2’用于指定是否调整RBG顺序,设置成0 1 2即按输入的RGB顺序不做调整
    # reorder_channel=’2 1 0’表示交换0和2通道,如果输入是RGB,将会被调整为BGR。如果是BGR将会被
    # 调整为BGR   
    rknn.config(channel_mean_value='0 0 0 1', reorder_channel='0 1 2')
    print('done')

    # Load tensorflow model
    ret = rknn.load_onnx(model = './model_openpose.onnx')
    if ret != 0:
        print('Load model failed!')
        exit(ret)
    print('done')

    # Build model
    print('--> Building model')

    ret = rknn.build(do_quantization=False)
    #ret = rknn.build(do_quantization=True, dataset='./datasets.txt')
    if ret != 0:
        print('Build model failed!')
        exit(ret)
    print('done')
    # Export rknn model
    print('--> Export RKNN model')
    ret = rknn.export_rknn('./model_openpose_test.rknn')
    if ret != 0:
        print('Export model failed!')
        exit(ret)
    print('done')

    rknn.release()






作者: jefferyzhang    时间: 5 天前
已经上报了
作者: liuwenhua    时间: 5 天前
jefferyzhang 发表于 2020-5-21 08:47
已经上报了

期待好消息
作者: liuwenhua    时间: 4 天前
jefferyzhang 发表于 2020-5-21 08:47
已经上报了

上报,有消息吗?谢谢
作者: jefferyzhang    时间: 4 天前
liuwenhua 发表于 2020-5-22 09:34
上报,有消息吗?谢谢

哪有这么快,急的话你们要通过FAE报告bug。这里只是社区而已,单向收集问题。
他们有回复我的话我才会回你们
作者: jefferyzhang    时间: 昨天 17:45
NPU Team回复:
你的网盘地址里没有你说的onnx模型,请提供下?253466

作者: liuwenhua    时间: 5 小时前
jefferyzhang 发表于 2020-5-25 17:45
NPU Team回复:
你的网盘地址里没有你说的onnx模型,请提供下?253466

链接:https://pan.baidu.com/s/1HESgXo9TzcQQXxXMic3nxw
提取码:wqp0


不好意思,分享错文件了

作者: Chambers    时间: 1 小时前
同样的问题,请教一下如何解决?




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