Toybrick

标题: 请问下 negative 支不支持啊? [打印本页]

作者: xsky    时间: 2019-12-2 21:04
标题: 请问下 negative 支不支持啊?

请问neg支不支持啊,这个简单的操作

导入onnx模型
[attach]766[/attach]


导入代码:
  1. from rknn.api import RKNN  

  2. INPUT_SIZE = 64

  3. if __name__ == '__main__':
  4.     # 创建RKNN执行对象
  5.     rknn = RKNN(verbose=True)
  6.     # 配置模型输入,用于NPU对数据输入的预处理
  7.     # channel_mean_value='0 0 0 255',那么模型推理时,将会对RGB数据做如下转换
  8.     # (R - 0)/255, (G - 0)/255, (B - 0)/255。推理时,RKNN模型会自动做均值和归一化处理
  9.     # reorder_channel=’0 1 2’用于指定是否调整图像通道顺序,设置成0 1 2即按输入的图像通道顺序不做调整
  10.     # reorder_channel=’2 1 0’表示交换0和2通道,如果输入是RGB,将会被调整为BGR。如果是BGR将会被调整为RGB
  11.     #图像通道顺序不做调整
  12.     rknn.config(channel_mean_value='0 0 0 255', reorder_channel='0 1 2')

  13.     #model_file = 'XMC2-Cls_face_emotion_classifier.onnx'
  14.     model_file = 'XMC2-Det_student_detector.onnx'
  15.     #model_file = 'XMC2-Det_student_detector.pth.tar.onnx'
  16.     #model_file = 'XMC2-Det_student_detector.pth.tar_op-v8.onnx'

  17.     # 加载TensorFlow模型
  18.     # tf_pb='digital_gesture.pb'指定待转换的TensorFlow模型
  19.     # inputs指定模型中的输入节点
  20.     # outputs指定模型中输出节点
  21.     # input_size_list指定模型输入的大小
  22.     print('--> Loading model', model_file)
  23.     # rknn.load_tensorflow(tf_pb='digital_gesture.pb',
  24.     #                      inputs=['input_x'],
  25.     #                      outputs=['probability'],
  26.     #                      input_size_list=[[INPUT_SIZE, INPUT_SIZE, 3]])
  27.     rknn.load_onnx(model=model_file)

  28.     print('done')

  29.     is_quantization = False

  30.     # 创建解析pb模型
  31.     # do_quantization=False指定不进行量化
  32.     # 量化会减小模型的体积和提升运算速度,但是会有精度的丢失
  33.     print('--> Building model')
  34.     rknn.build(do_quantization=is_quantization)
  35.     print('done')

  36.     # 导出保存rknn模型文件
  37.     if is_quantization:
  38.         quant_suff = '_quant'
  39.     else:
  40.         quant_suff = '_un-quant'
  41.     rknn.export_rknn( model_file + quant_suff + '.rknn')

  42.     # Release RKNN Context
  43.     rknn.release()


复制代码




报错信息:
  1. I Match r_maxpool [['MaxPool_9']] [['MaxPool']] to [['pooling']]
  2. I Try match AveragePool_13:out0
  3. I Match r_avgpool [['AveragePool_13']] [['AveragePool']] to [['pooling']]
  4. I Try match Relu_17:out0
  5. I Match r_relu [['Relu_17']] [['Relu']] to [['relu']]
  6. I Try match Conv_22:out0
  7. I Match r_conv [['Conv_22', 'Initializer_26', 'Initializer_27']] [['Conv', 'Constant_0', 'Constant_1']] to [['convolution']]
  8. I Try match Relu_8:out0
  9. I Match r_relu [['Relu_8']] [['Relu']] to [['relu']]
  10. I Try match Pad_12:out0
  11. I Match pad_g1 [['Pad_12']] [['Pad']] to [['pad']]
  12. I Try match Conv_16:out0
  13. I Match r_conv [['Conv_16', 'Initializer_20', 'Initializer_21']] [['Conv', 'Constant_0', 'Constant_1']] to [['convolution']]
  14. I Try match Relu_21:out0
  15. I Match r_relu [['Relu_21']] [['Relu']] to [['relu']]
  16. I Try match Concat_7:out0
  17. I Match concat_2 [['Concat_7']] [['Concat']] to [['concat']]
  18. I Try match Neg_6:out0
  19. W Not match tensor Neg_6:out0
  20. E Catch exception when loading onnx model: XMC2-Det_student_detector.onnx!
  21. E Traceback (most recent call last):
  22. E   File "rknn\api\rknn_base.py", line 345, in rknn.api.rknn_base.RKNNBase.load_onnx
  23. E   File "rknn\base\RKNNlib\converter\convert_onnx.py", line 1072, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx.match_paragraph_and_param
  24. E   File "rknn\base\RKNNlib\converter\convert_onnx.py", line 985, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx._onnx_push_ready_tensor
  25. E TypeError: 'NoneType' object is not iterable
  26. Traceback (most recent call last):
  27.   File "D:\Program Files\JetBrains\PyCharm 2019.2.3\helpers\pydev\pydevd.py", line 2073, in <module>
  28.     main()
  29.   File "D:\Program Files\JetBrains\PyCharm 2019.2.3\helpers\pydev\pydevd.py", line 2067, in main
  30.     globals = debugger.run(setup['file'], None, None, is_module)
  31.   File "D:\Program Files\JetBrains\PyCharm 2019.2.3\helpers\pydev\pydevd.py", line 1418, in run
  32.     return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
  33.   File "D:\Program Files\JetBrains\PyCharm 2019.2.3\helpers\pydev\pydevd.py", line 1425, in _exec
  34.     pydev_imports.execfile(file, globals, locals)  # execute the script
  35.   File "D:\Program Files\JetBrains\PyCharm 2019.2.3\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
  36.     exec(compile(contents+"\n", file, 'exec'), glob, loc)
  37.   File "E:/Work/_Code/dmax/tools/covert_onnx/main.py", line 42, in <module>
  38.     rknn.build(do_quantization=is_quantization)
  39.   File "D:\Program Files\Python\Python36\lib\site-packages\rknn\api\rknn.py", line 148, in build
  40.     inputs = self.rknn_base.net.get_input_layers()
  41. AttributeError: 'NoneType' object has no attribute 'get_input_layers'
复制代码






作者: jefferyzhang    时间: 2019-12-3 09:40
W Not match tensor Neg_6ut0

至少说明在ONNX上不支持,你可以试试:
1. 用tf、caffe写支不支持
2. 这么简单的操作自己写个自定义OP应该也不会很难(参看文档)。




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