Toybrick

标题: 请问多久会支持pytorch框架?据说onnx要散伙了 [打印本页]

作者: kitedream    时间: 2019-3-3 10:55
标题: 请问多久会支持pytorch框架?据说onnx要散伙了
现在pytorch 越来越流行了,很多新论文是用pytorch 实现的

作者: jefferyzhang    时间: 2019-3-3 18:38
keras和pytorch我都已经向有关部门提过需求了,一起等吧,我相信不久的将来就会支持
毕竟目前最流行的就是这俩了
作者: leok    时间: 2019-3-4 02:13
目前可以这样玩,先转成onnx,再转成rknn。
作者: jefferyzhang    时间: 2019-3-7 09:24
本帖最后由 jefferyzhang 于 2019-4-25 09:34 编辑

已经在支持中了,未来将会发布
作者: kitedream    时间: 2019-3-7 14:14
jefferyzhang 发表于 2019-3-7 09:24
确切消息,已经在支持中了,下一个版本应该会发布

激动
作者: chuyee    时间: 2019-3-11 03:29
When will be the next release? Can't wait for the pytorch support!
作者: granis    时间: 2019-3-12 18:36
jefferyzhang 发表于 2019-3-7 09:24
确切消息,已经在支持中了,下一个版本应该会发布

pytorch过来onnx转换的时候反卷积和Clip(0,6)都有问题。
能给支持么?
作者: jefferyzhang    时间: 2019-3-14 09:02
granis 发表于 2019-3-12 18:36
pytorch过来onnx转换的时候反卷积和Clip(0,6)都有问题。
能给支持么?

反卷积支持,
Clip暂时不支持
作者: granis    时间: 2019-3-14 09:14
jefferyzhang 发表于 2019-3-14 09:02
反卷积支持,
Clip暂时不支持

帮我看看这个,在反卷积的时候出错。Clip是MobileNetV2中用到的,能否提供支持,实现起来也是非常简单。
W verbose file path is invalid, debug info will not dump to file.
I Current ONNX Model use ir_version 3 opset_version 9
D import clients finished
I build output layer output_473
I Try match Conv op#154
I Match [['473']] [['Conv_1']] to [['convolution_1']]
I Try match Relu op#153
I Match [['472']] [['Relu_1']] to [['relu_1']]
I Try match BatchNormalization op#152
I Match [['471']] [['BatchNormalization']] to [['batchnormalize_1']]
I Try match ConvTranspose op#151
I Match [['470']] [['ConvTranspose_1']] to [['deconvolution_1']]
E Catch exception when loading onnx model: ./model.onnx!
T Traceback (most recent call last):
T   File "rknn/api/rknn_base.py", line 321, in rknn.api.rknn_base.RKNNBase.load_onnx
T   File "rknn/base/rknnlib/converter/convert_onnx.py", line 555, in rknn.base.rknnlib.converter.convert_onnx.convert_onnx.match_paragraph_and_param
T   File "rknn/base/rknnlib/converter/convert_onnx.py", line 355, in rknn.base.rknnlib.converter.convert_onnx.convert_onnx._onnx_build_acu_layer
T   File "rknn/base/rknnlib/converter/convert_onnx.py", line 322, in rknn.base.rknnlib.converter.convert_onnx.convert_onnx._onnx_acu_param_assign
T   File "rknn/base/rknnlib/converter/convert_onnx.py", line 302, in rknn.base.rknnlib.converter.convert_onnx.convert_onnx._onnx_parse_param
T   File "rknn/base/rknnlib/converter/paragraph.py", line 21, in rknn.base.rknnlib.converter.paragraph.lambda4
T TypeError: 'int' object is not iterable

作者: jefferyzhang    时间: 2019-3-14 09:25
granis 发表于 2019-3-14 09:14
帮我看看这个,在反卷积的时候出错。Clip是MobileNetV2中用到的,能否提供支持,实现起来也是非常简单。
...

这个log看是匹配反卷积层时候出现问题,并不是op不支持。
先测试下你的模型转成onnx后是否可以正常推理,再转rknn

不支持Clip op我们报告给相关部门去处理了。
作者: granis    时间: 2019-3-14 10:52
jefferyzhang 发表于 2019-3-14 09:25
这个log看是匹配反卷积层时候出现问题,并不是op不支持。
先测试下你的模型转成onnx后是否可以正常推理, ...

我们用这个模型转了Mace和NCNN都没有问题。
作者: hunterZhang    时间: 2019-4-23 10:10
When I convert pytorch to onnx;
Traceback (most recent call last):
  File "eval.py", line 940, in <module>
    model_onnx_path)
  File "/usr/local/lib/python3.5/dist-packages/torch/onnx/__init__.py", line 27, in export
    return utils.export(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/torch/onnx/utils.py", line 104, in export
    operator_export_type=operator_export_type)
  File "/usr/local/lib/python3.5/dist-packages/torch/onnx/utils.py", line 281, in _export
    example_outputs, propagate)
  File "/usr/local/lib/python3.5/dist-packages/torch/onnx/utils.py", line 224, in _model_to_graph
    graph, torch_out = _trace_and_get_graph_from_model(model, args, training)
  File "/usr/local/lib/python3.5/dist-packages/torch/onnx/utils.py", line 192, in _trace_and_get_graph_from_model
    trace, torch_out = torch.jit.get_trace_graph(model, args, _force_outplace=True)
  File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python3.5/dist-packages/torch/onnx/utils.py", line 39, in set_training
    yield
  File "/usr/local/lib/python3.5/dist-packages/torch/onnx/utils.py", line 192, in _trace_and_get_graph_from_model
    trace, torch_out = torch.jit.get_trace_graph(model, args, _force_outplace=True)
  File "/usr/local/lib/python3.5/dist-packages/torch/jit/__init__.py", line 197, in get_trace_graph
    return LegacyTracedModule(f, _force_outplace)(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/modules/module.py", line 489, in __call__
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/torch/jit/__init__.py", line 253, in forward
    out_vars, _ = _flatten(out)
RuntimeError: Only tuples, lists and Variables supported as JIT inputs, but got dict

I could not figure out where is wrong, seems ONNX sets some limitations for its usage.
Hope direct pytorch conversion could be released ASAP
作者: farces    时间: 2019-10-28 11:16
jefferyzhang 发表于 2019-3-3 18:38
keras和pytorch我都已经向有关部门提过需求了,一起等吧,我相信不久的将来就会支持
毕竟目前最流 ...

pytorch大概什么时间支持?
作者: jefferyzhang    时间: 2019-10-28 14:08
farces 发表于 2019-10-28 11:16
pytorch大概什么时间支持?

快了。具体时间点我也不懂,NPU部门也只是回我已经在做了。

目前情况下都是可以通过先转onnx后再转rknn的




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