Toybrick

标题: pytorch模型直接转rknn报错 [打印本页]

作者: zjmmm    时间: 2020-7-1 15:16
标题: pytorch模型直接转rknn报错
本帖最后由 zjmmm 于 2020-7-1 15:19 编辑

我这边的一些环境是debian10、rknn-toolkit是1.3.2、pytorch1.2.0、torchvision是0.2.2.post3。
一开始只有一个pth文件,看到文档说pth可能不支持就直接转为pt了,在PC上模型文件可以推导成功。
在板子上rknn.load_pytorch(model='resnet18.pt', input_size_list=[[1,3,720,1280]])这样运行就报了下面的错,请问是哪里有问题吗
[size=13.0667px]--> Loading model
W:tensorflow:From /usr/local/lib/python3.7/dist-packages/onnx_tf/handlers/backend/ceil.py:10: The name tf.ceil is deprecated. Please use tf.math.ceil instead.

W:tensorflow:From /usr/local/lib/python3.7/dist-packages/onnx_tf/handlers/backend/depth_to_space.py:12: The name tf.depth_to_space is deprecated. Please use tf.compat.v1.depth_to_space instead.

W:tensorflow:
The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:
  * https://github.com/tensorflow/co ... 7-contrib-sunset.md
  * https://github.com/tensorflow/addons
  * https://github.com/tensorflow/io (for I/O related ops)
If you depend on functionality not listed there, please file an issue.

W:tensorflow:From /usr/local/lib/python3.7/dist-packages/onnx_tf/handlers/backend/log.py:10: The name tf.log is deprecated. Please use tf.math.log instead.

W:tensorflow:From /usr/local/lib/python3.7/dist-packages/onnx_tf/handlers/backend/random_normal.py:9: The name tf.random_normal is deprecated. Please use tf.random.normal instead.

W:tensorflow:From /usr/local/lib/python3.7/dist-packages/onnx_tf/handlers/backend/random_uniform.py:9: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.

W:tensorflow:From /usr/local/lib/python3.7/dist-packages/onnx_tf/handlers/backend/upsample.py:13: The name tf.image.resize_images is deprecated. Please use tf.image.resize instead.

/usr/local/lib/python3.7/dist-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)
resnet18.pt ********************
WARNING: Token 'COMMENT' defined, but not used
WARNING: There is 1 unused token
W Not match tensor aten::div_at_2213ut0
E Catch exception when loading pytorch model: resnet18.pt!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 611, in rknn.api.rknn_base.RKNNBase.load_pytorch
E   File "rknn/base/RKNNlib/app/importer/import_pytorch.py", line 104, in rknn.base.RKNNlib.app.importer.import_pytorch.ImportPytorch.run
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 1205, in rknn.base.RKNNlib.converter.convert_pytorch.convert_pytorch.match_paragraph_and_param
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 1129, in rknn.base.RKNNlib.converter.convert_pytorch.convert_pytorch._torch_push_ready_tensor
E TypeError: 'NoneType' object is not iterable
done
--> Building model
Traceback (most recent call last):
  File "transform.py", line 30, in <module>
    rknn.build(do_quantization=False)
  File "/usr/local/lib/python3.7/dist-packages/rknn/api/rknn.py", line 222, in build
    inputs = self.rknn_base.net.get_input_layers()
AttributeError: 'NoneType' object has no attribute 'get_input_layers'

作者: jefferyzhang    时间: 2020-7-1 15:37
从log上看 是 W Not match tensor aten::div_at_2213ut0
这个op不支持。名字上看有点怪,我报给NPU部门看下
作者: zjmmm    时间: 2020-7-1 16:05
jefferyzhang 发表于 2020-7-1 15:37
从log上看 是 W Not match tensor aten::div_at_2213ut0
这个op不支持。名字上看有点怪,我报给NPU部门看下 ...

那这个是不是只能通过pt转onnx来生成rknn文件了??
作者: jefferyzhang    时间: 2020-7-1 16:06
zjmmm 发表于 2020-7-1 16:05
那这个是不是只能通过pt转onnx来生成rknn文件了??

不确定,印象中resnet18直接可以用,可能是某些写法有问题,你可以提供下转换脚本和pt模型
作者: zjmmm    时间: 2020-7-1 16:21
jefferyzhang 发表于 2020-7-1 16:06
不确定,印象中resnet18直接可以用,可能是某些写法有问题,你可以提供下转换脚本和pt模型 ...

链接:https://pan.baidu.com/s/1FqzPvAqGwl9V1YtKgCA2pw
提取码:60tn
转换代码和pth,pt文件都在网盘中
上面的resnet18其实是mobilev3,我在pth转pt的时候没有改生成的文件名,mobilev3应该是在原来的基础上做了些修改了。
作者: zjmmm    时间: 2020-7-2 11:41
jefferyzhang 发表于 2020-7-1 16:06
不确定,印象中resnet18直接可以用,可能是某些写法有问题,你可以提供下转换脚本和pt模型 ...

您好,我想请问下pytorch中不支持的某些ops,转为onnx文件后再转rknn,这些问题是不是也同样存在的??
作者: jefferyzhang    时间: 2020-7-2 12:09
zjmmm 发表于 2020-7-2 11:41
您好,我想请问下pytorch中不支持的某些ops,转为onnx文件后再转rknn,这些问题是不是也同样存在的?? ...

很多不是不支持,是你本地的pytorch onnx tf版本,因为加入了custom op,包装了下名字无法识别,或者是类似sub_xxx234 后面多出来一堆尾巴无法识别而已。

现有的模型只要不是新提出来的op我们都支持,连yolov4的mish都已经新增支持了。




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