Toybrick

pytorch模型直接转rknn报错

zjmmm

中级会员

积分
304
楼主
发表于 2020-7-1 15:16:31    查看: 9512|回复: 6 | [复制链接]    打印 | 只看该作者
本帖最后由 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

版主

积分
13580
沙发
发表于 2020-7-1 15:37:03 | 只看该作者
从log上看 是 W Not match tensor aten::div_at_2213ut0
这个op不支持。名字上看有点怪,我报给NPU部门看下
回复

使用道具 举报

zjmmm

中级会员

积分
304
板凳
 楼主| 发表于 2020-7-1 16:05:10 | 只看该作者
jefferyzhang 发表于 2020-7-1 15:37
从log上看 是 W Not match tensor aten::div_at_2213ut0
这个op不支持。名字上看有点怪,我报给NPU部门看下 ...

那这个是不是只能通过pt转onnx来生成rknn文件了??
回复

使用道具 举报

jefferyzhang

版主

积分
13580
地板
发表于 2020-7-1 16:06:50 | 只看该作者
zjmmm 发表于 2020-7-1 16:05
那这个是不是只能通过pt转onnx来生成rknn文件了??

不确定,印象中resnet18直接可以用,可能是某些写法有问题,你可以提供下转换脚本和pt模型
回复

使用道具 举报

zjmmm

中级会员

积分
304
5#
 楼主| 发表于 2020-7-1 16:21:13 | 只看该作者
jefferyzhang 发表于 2020-7-1 16:06
不确定,印象中resnet18直接可以用,可能是某些写法有问题,你可以提供下转换脚本和pt模型 ...

链接:https://pan.baidu.com/s/1FqzPvAqGwl9V1YtKgCA2pw
提取码:60tn
转换代码和pth,pt文件都在网盘中
上面的resnet18其实是mobilev3,我在pth转pt的时候没有改生成的文件名,mobilev3应该是在原来的基础上做了些修改了。
回复

使用道具 举报

zjmmm

中级会员

积分
304
6#
 楼主| 发表于 2020-7-2 11:41:12 | 只看该作者
jefferyzhang 发表于 2020-7-1 16:06
不确定,印象中resnet18直接可以用,可能是某些写法有问题,你可以提供下转换脚本和pt模型 ...

您好,我想请问下pytorch中不支持的某些ops,转为onnx文件后再转rknn,这些问题是不是也同样存在的??
回复

使用道具 举报

jefferyzhang

版主

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

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表