Toybrick

标题: 转换DeepLabV3+模型失败!!! [打印本页]

作者: tomyhome    时间: 2020-3-21 15:26
标题: 转换DeepLabV3+模型失败!!!
各位好,现在有个需求:需要DeepLabV3+模型跑在3399Pro,利用RKNN转换,尝试过可视化工具,编代码转换,都失败!!
我们需要的是转换xception65的大模型,不是mobilenet小模型,因为不需要实时运行,只要1秒内完成一个图片的分割即可!!
下面我把失败的情况说一下:
转换环境:(虚拟机+PC都试过了)Ubuntu18.04  rknn1.3.0
输入/输出点:尝试过mobilenet小模型的点MobilenetV2/Conv/Conv2D和ArgMax,也尝试过代码中的完整输入输出;
量化:如果关闭量化,可以转换rknn模型,不过会在推理时候加载错误!!!
           如果打开量化,模型转换的时候会卡在I Running 1 iterations,等了很长时间都不会有任何提示!!!!!!
模型编辑:曾经试过编辑模型的层,失败!!!!!!!
关于rknn:输入只能支持1个参数,不支持多个参数,insightface就不能转换了!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
大家帮忙看看把!!!!!!!!!!!!!
有谁成功的,分享一下信息?



作者: tomyhome    时间: 2020-3-23 16:40
自己顶一下!!!!!谁来帮帮忙?
作者: jefferyzhang    时间: 2020-3-23 17:31
之前有客户问过,NPU部门的回复是:
让用户试下设置inputs为['sub_7'],outputs为['ResizeBilinear_2'],input_size_list为513, 513, 3后再试下。我这里是可以正常运行的。
作者: tomyhome    时间: 2020-3-24 08:33
jefferyzhang 发表于 2020-3-23 17:31
之前有客户问过,NPU部门的回复是:
让用户试下设置inputs为['sub_7'],outputs为['ResizeBilinear_2'],in ...

好的,收到,正在尝试,我是虚拟机转换的,需要很长时间吗?给虚拟机分配了4核6G内存,之前转换openpose都是OK的
作者: tomyhome    时间: 2020-3-25 15:28
jefferyzhang 发表于 2020-3-23 17:31
之前有客户问过,NPU部门的回复是:
让用户试下设置inputs为['sub_7'],outputs为['ResizeBilinear_2'],in ...

请问一下你说的试过没问题,是哪个模型没问题呢?我这边现在可以转换了,但推理错误,如果转换为硬件运行的模型,也会转换出错,我用的模型是这个:http://download.tensorflow.org/models/deeplabv3_pascal_trainval_2018_01_04.tar.gz如果方便的,请提供上面模型转换后可行的模型,谢谢
下面是转换模型出错log
D Compiling start...
D gcc -Wall -std=c++0x -I. -I/usr/local/lib/python3.6/dist-packages/rknn/simulator/include/ -I/usr/local/lib/python3.6/dist-packages/rknn/simulator/include/CL -I/usr/local/lib/python3.6/dist-packages/rknn/simulator/include/VX -I/usr/local/lib/python3.6/dist-packages/rknn/simulator/include/ovxlib -D__linux__ -DLINUX -O3 -c rknn_pre_process.c
D gcc -Wall -std=c++0x -I. -I/usr/local/lib/python3.6/dist-packages/rknn/simulator/include/ -I/usr/local/lib/python3.6/dist-packages/rknn/simulator/include/CL -I/usr/local/lib/python3.6/dist-packages/rknn/simulator/include/VX -I/usr/local/lib/python3.6/dist-packages/rknn/simulator/include/ovxlib -D__linux__ -DLINUX -O3 -c rknn_frozeninferencegraph.c
D /tmp/tmpjtx6z821/makefile.linux:40: recipe for target 'rknn_frozeninferencegraph.o' failed
D Compiling finished.
D Generate pre-compile model data start...
D Generate pre-compile model data finished.
E Generate nbg failed.
W ----------------Warning(261)----------------
E Catch exception when direct build RKNN model!
E Traceback (most recent call last):
E   File "rknn/base/ovxconfiggenerator.py", line 178, in rknn.base.ovxconfiggenerator.generate_vx_config_from_files
E   File "rknn/base/RKNNlib/app/exporter/ovxlib_case/casegenerator.py", line 531, in rknn.base.RKNNlib.app.exporter.ovxlib_case.casegenerator.CaseGenerator.generate
E   File "rknn/base/RKNNlib/app/exporter/ovxlib_case/casegenerator.py", line 495, in rknn.base.RKNNlib.app.exporter.ovxlib_case.casegenerator.CaseGenerator._gen_special_case
E   File "rknn/base/RKNNlib/app/exporter/ovxlib_case/casegenerator.py", line 462, in rknn.base.RKNNlib.app.exporter.ovxlib_case.casegenerator.CaseGenerator._gen_nb_file
E AttributeError: 'CaseGenerator' object has no attribute 'nbg_graph_file_path'
E During handling of the above exception, another exception occurred:
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 699, in rknn.api.rknn_base.RKNNBase.direct_build
E   File "rknn/api/rknn_base.py", line 640, in rknn.api.rknn_base.RKNNBase._build
E   File "rknn/base/ovxconfiggenerator.py", line 180, in rknn.base.ovxconfiggenerator.generate_vx_config_from_files
E   File "/usr/local/lib/python3.6/dist-packages/rknn/base/RKNNlib/RKNNlog.py", line 327, in e
E     raise ValueError(msg)
E ValueError: Generate nbg failed.
--> Build model failed!



作者: brunolin    时间: 2020-3-30 15:06
我也在嘗試轉換這個,同樣有問題,
請版主回覆一下
作者: brunolin    时间: 2020-4-14 10:29
使用rknn-toolkit v1.3轉檔發生以下問題,是有甚麼不支持的操作嗎?

--> Build RKNN model...
W The RKNN Model generated can not run on simulator when pre_compile is True.
cc1: warning: command line option ‘-std=c++11’ is valid for C++/ObjC++ but not for C
cc1: warning: command line option ‘-std=c++11’ is valid for C++/ObjC++ but not for C
vnn_frozeninferencegraph.c: In function ‘vnn_CreateFrozenInferenceGraph’:
vnn_frozeninferencegraph.c:5142:31: error: ‘vsi_nn_resize_param {aka struct _vsi_nn_resize_param}’ has no member named ‘align_corners’
     node[249]->nn_param.resize.align_corners = True;
                               ^
vnn_frozeninferencegraph.c:5142:48: error: ‘True’ undeclared (first use in this function); did you mean ‘free’?
     node[249]->nn_param.resize.align_corners = True;
                                                ^~~~
                                                free
vnn_frozeninferencegraph.c:5142:48: note: each undeclared identifier is reported only once for each function it appears in
make: *** [vnn_frozeninferencegraph.o] Error 1
/bin/sh: 1: /tmp/tmp3rouo9uz/gen_nbg: not found
mv: cannot stat '/home/aver/rknn/rknn-toolkit/example/rknn_convert/*.nb': No such file or directory
mv: cannot stat '/home/aver/rknn/rknn-toolkit/example/rknn_convert/*.dat': No such file or directory
E Generate nbg failed.

作者: jefferyzhang    时间: 2020-4-14 11:01
brunolin 发表于 2020-4-14 10:29
使用rknn-toolkit v1.3轉檔發生以下問題,是有甚麼不支持的操作嗎?

--> Build RKNN model...

这个问题已经报给我们相关同事了,他们已经在处理了。。。
作者: jefferyzhang    时间: 2020-4-14 11:12
brunolin 发表于 2020-4-14 10:29
使用rknn-toolkit v1.3轉檔發生以下問題,是有甚麼不支持的操作嗎?

--> Build RKNN model...

这问题是这样处理的:

模拟器resize没有align_corner这个属性,我们是在驱动里加的。所以在build的时候如果设置per_compile=True会报帖子里的这个错误,可以先把这个参数设成False,这样转换不会失败。如果想要用预编译模型,可以用下面方法,从 板子导出一个预编译模型来。

可以让客户在1.3.0上先转一个普通的rknn模型,再用examples/common_function_demos/export_rknn_precompompile_model里的脚本导出预编译模型
作者: brunolin    时间: 2020-4-15 14:51
按照你建議的,但是一直卡在rknn.init_runtime
python export_rknn_precompile_model.py non_precompile.rknn precompile.rknn
--> Export RKNN model
done
--> Init runtime environment
卡在這裡兩小時了還無法完成




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