Toybrick

标题: rknn-toolkit支持pytorch1.4.0下efficientDetD1的模型为rknn模型吗 [打印本页]

作者: daigang    时间: 2020-8-10 16:35
标题: rknn-toolkit支持pytorch1.4.0下efficientDetD1的模型为rknn模型吗
本帖最后由 daigang 于 2020-8-10 16:37 编辑



rknn-toolkit目前支持pytorch1.4.0吗?能否成功转换pytorch1.4.0下的efficientDetD1的模型为rknn模型?使用的是https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch的代码进行模型训练和保存的模型,但是不知道如何才能成功转换为rknn模型,能否提供点建议。
作者: jefferyzhang    时间: 2020-8-10 16:55
我们做芯片角度只考虑op是不是支持,不用问什么什么模型支不支持,模型每年增长上千个,我们怎么可能一个个试过去,转下看看有没有报错就知道了。
目前rknntoolkit 1.3.2只支持pytorch 1.2.0,其他版本不支持。
还有efficientnet不是google发明的网络么,为啥不用tf要用pytorch转
作者: senna_kim    时间: 2020-8-11 15:41
jefferyzhang 发表于 2020-8-10 16:55
我们做芯片角度只考虑op是不是支持,不用问什么什么模型支不支持,模型每年增长上千个,我们怎么可能一个个 ...

你好,请问一下,这种情况 是不是需要自己定义Op?

  1. Try match FusedBatchNormV3 FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/BatchNorm/FusedBatchNormV3 failed, catch exception!
  2. E Catch exception when loading tensorflow model: ./output_inference_graph_v2/output_inference_graph_v2/frozen_inference_graph.pb!
  3. E Traceback (most recent call last):
  4. E   File "rknn\base\RKNNlib\converter\convert_tf.py", line 643, in rknn.base.RKNNlib.converter.convert_tf.convert_tf.match_paragraph_and_param
  5. E   File "rknn\base\RKNNlib\RKNNnet.py", line 189, in rknn.base.RKNNlib.RKNNnet.RKNNNet.new_layer
  6. E   File "rknn\base\RKNNlib\RKNNlog.py", line 327, in rknn.base.RKNNlib.RKNNlog.RKNNLog.e
  7. E ValueError: Unknow layer "fusedbatchnormv3"
  8. E During handling of the above exception, another exception occurred:
  9. E Traceback (most recent call last):
  10. E   File "rknn\api\rknn_base.py", line 303, in rknn.api.rknn_base.RKNNBase.load_tensorflow
  11. E   File "rknn\base\RKNNlib\converter\convert_tf.py", line 742, in rknn.base.RKNNlib.converter.convert_tf.convert_tf.match_paragraph_and_param
  12. E   File "rknn\base\RKNNlib\RKNNlog.py", line 327, in rknn.base.RKNNlib.RKNNlog.RKNNLog.e
  13. E ValueError: Try match FusedBatchNormV3 FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/BatchNorm/FusedBatchNormV3 failed, catch exception!
复制代码

作者: jefferyzhang    时间: 2020-8-11 16:09
senna_kim 发表于 2020-8-11 15:41
你好,请问一下,这种情况 是不是需要自己定义Op?

log上看 是FusedBatchNormV3 这个不支持。
你可以考虑修改模型比较快。
作者: senna_kim    时间: 2020-8-11 16:37
jefferyzhang 发表于 2020-8-11 16:09
log上看 是FusedBatchNormV3 这个不支持。
你可以考虑修改模型比较快。

你的意思是移除这一层网络吗?还是。。。
请再多给点细节,谢谢!
作者: jefferyzhang    时间: 2020-8-11 17:59
senna_kim 发表于 2020-8-11 16:37
你的意思是移除这一层网络吗?还是。。。
请再多给点细节,谢谢!

改普通BN层试试,改完要重新训练
作者: senna_kim    时间: 2020-8-11 18:17
jefferyzhang 发表于 2020-8-11 17:59
改普通BN层试试,改完要重新训练

你们现在硬件优化的Op都支持哪些?有文档可以看一下吗?
作者: jefferyzhang    时间: 2020-8-11 19:55
senna_kim 发表于 2020-8-11 18:17
你们现在硬件优化的Op都支持哪些?有文档可以看一下吗?

没有文档,硬件op和软件op不是一个概念,每个框架兼容程度也不一样。我们尽可能的全兼容,但新op出的速度远快于我们支持速度。不支持的可以自己通过自定义op来支持,或者等我们支持。
作者: senna_kim    时间: 2020-8-12 09:51
jefferyzhang 发表于 2020-8-11 19:55
没有文档,硬件op和软件op不是一个概念,每个框架兼容程度也不一样。我们尽可能的全兼容,但新op出的速度 ...

好的,谢谢!
作者: daigang    时间: 2020-8-17 14:42
jefferyzhang 发表于 2020-8-10 16:55
我们做芯片角度只考虑op是不是支持,不用问什么什么模型支不支持,模型每年增长上千个,我们怎么可能一个个 ...

在网上找到的tensorflow下的efficientDet的代码都是tensorflow2.0下的代码,之前看贵公司说rknn-toolkit-1.3.2目前还不支持tensorflow2.0,就没有使用了。目前训练的一版是pytorch1.4.0下efficientDetD1的模型,也是遇到了转换模型的问题。




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