Toybrick

rk3566 转换facenet失败

ameRk

注册会员

积分
91
楼主
发表于 2022-7-15 11:01:04    查看: 7823|回复: 18 | [复制链接]    打印 | 显示全部楼层
同样的模型,用rknn-toolkit 参照(https://t.rock-chips.com/forum.p ... =facenet&page=1)进行转换,可以正常转换,但是用rknn-toolkit2(rk35666)进行转换,提示如下错误。
该问题是因为 rknn-toolkit2 已经不支持了facenet的模型转换吗?

W __init__: rknn-toolkit2 version: 1.3.0-11912b58
W config: 'target_platform' is None, use rk3566 as default, Please set according to the actual platform!
config done
--> Loading model
W load_tensorflow: inputs name should be a tensor name instead of node name
2022-07-14 16:26:03.647684: I tensorflow/tools/graph_transforms/transform_graph.cc:317] Applying strip_unused_nodes
2022-07-14 16:26:03.787548: I tensorflow/tools/graph_transforms/transform_graph.cc:317] Applying sort_by_execution_order
2022-07-14 16:26:03.867908: I tensorflow/tools/graph_transforms/transform_graph.cc:317] Applying fold_constants
2022-07-14 16:26:04.358690: I tensorflow/tools/graph_transforms/transform_graph.cc:317] Applying fold_batch_norms
2022-07-14 16:26:04.506355: I tensorflow/tools/graph_transforms/transform_graph.cc:317] Applying fold_old_batch_norms
2022-07-14 16:26:05.596624: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 AVX512F FMA
2022-07-14 16:26:05.620279: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2200000000 Hz
2022-07-14 16:26:05.622388: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x556b7a5042e0 executing computations on platform Host. Devices:
2022-07-14 16:26:05.622431: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): <undefined>, <undefined>
E load_tensorflow: Catch exception when loading tensorflow model: 20180402-114759/20180402-114759.pb!
E load_tensorflow: Traceback (most recent call last):
E load_tensorflow:   File "/home/ame/anaconda3/envs/npu/lib/python3.6/site-packages/tensorflow/python/framework/importer.py", line 427, in import_graph_def
E load_tensorflow:     graph._c_graph, serialized, options)  # pylint: disable=protected-access
E load_tensorflow: tensorflow.python.framework.errors_impl.InvalidArgumentError: Node 'InceptionResnetV1/Bottleneck/BatchNorm/cond_1/AssignMovingAvg_1/Switch' expects to be colocated with unknown node 'InceptionResnetV1/Bottleneck/BatchNorm/moving_variance'
E load_tensorflow: During handling of the above exception, another exception occurred:
E load_tensorflow: Traceback (most recent call last):
E load_tensorflow:   File "rknn/api/rknn_base.py", line 990, in rknn.api.rknn_base.RKNNBase.load_tensorflow
E load_tensorflow:   File "rknn/base/convertor/tensorflow2onnx/tf2onnx/convert.py", line 589, in rknn.base.convertor.tensorflow2onnx.tf2onnx.convert.from_graph_def
E load_tensorflow:   File "rknn/base/convertor/tensorflow2onnx/tf2onnx/convert.py", line 590, in rknn.base.convertor.tensorflow2onnx.tf2onnx.convert.from_graph_def
E load_tensorflow:   File "rknn/base/convertor/tensorflow2onnx/tf2onnx/convert.py", line 591, in rknn.base.convertor.tensorflow2onnx.tf2onnx.convert.from_graph_def
E load_tensorflow:   File "rknn/base/convertor/tensorflow2onnx/tf2onnx/convert.py", line 592, in rknn.base.convertor.tensorflow2onnx.tf2onnx.convert.from_graph_def
E load_tensorflow:   File "/home/ame/anaconda3/envs/npu/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
E load_tensorflow:     return func(*args, **kwargs)
E load_tensorflow:   File "/home/ame/anaconda3/envs/npu/lib/python3.6/site-packages/tensorflow/python/framework/importer.py", line 431, in import_graph_def
E load_tensorflow:     raise ValueError(str(e))
E load_tensorflow: ValueError: Node 'InceptionResnetV1/Bottleneck/BatchNorm/cond_1/AssignMovingAvg_1/Switch' expects to be colocated with unknown node 'InceptionResnetV1/Bottleneck/BatchNorm/moving_variance'
done
--> Building model
E build: The model has not been loaded, please load it first!
done
E export_rknn: RKNN model is None, please load & build model first!

回复

使用道具 举报

ameRk

注册会员

积分
91
沙发
 楼主| 发表于 2022-7-15 11:20:33 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 11:17
NPU只对op层面做支持,我们不会把市面所有模型都跑一遍。
不支持的op要么换掉,要么自定义,要么拉出来放到 ...

关键是 你这个rknn-toolkit 是支持的啊,怎么到 rknn-toolkit2  反而取消了呢,没有考虑向下兼容吗?
是对 rknn-toolkit2 进行了裁剪吗?
回复

使用道具 举报

ameRk

注册会员

积分
91
板凳
 楼主| 发表于 2022-7-15 11:40:31 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 11:27
建议你先把文档看一遍,这个看过去不会支持不了。版本不匹配可能性更大 ...

版本不匹配,你是只芯片与sdk的版本吗,现在的板子是 rk 3566 ,就是按照你们的文档,要换成  rknn-toolkit2的啊

而且目前都是再ubuntu系统上进行转换的,你说的版本不匹配 指的什么呢,我现在都没有走到推理那一步,现在是转换模型都失败啦,同样的流程,rknn-toolkit (1.7.1)版本是可以转换成功的,rknn-toolkit 2就转换找不到OP
回复

使用道具 举报

ameRk

注册会员

积分
91
地板
 楼主| 发表于 2022-7-15 11:43:38 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 11:27
建议你先把文档看一遍,这个看过去不会支持不了。版本不匹配可能性更大 ...

为了保持一致性,我都是再同一台服务器上搭建的同样的环境(除了你们的转换工具包不一样,其他的依赖库版本都一样的)所以你说的版本不匹配 是指的哪方面的呢
回复

使用道具 举报

ameRk

注册会员

积分
91
5#
 楼主| 发表于 2022-7-15 12:10:55 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 12:05
你tensorflow什么版本

1.14.0,按照你们的文档安装的版本
回复

使用道具 举报

ameRk

注册会员

积分
91
6#
 楼主| 发表于 2022-7-15 12:18:54 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 12:14
你模型没开推理模式转的吧?

没开,因为之前就发现有问题,所以就只进行了模型转换处理
回复

使用道具 举报

ameRk

注册会员

积分
91
7#
 楼主| 发表于 2022-7-15 12:31:54 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 12:25
不开推理模式freeze的模型rknntoolkit1也是转不过的

不好意思确认一下,你说的推理模式是指  rknn.build 之后的interface 操作,还是  某个配置项啊,如果是  指interface 的话。我这里确实都没有开,但是rknntoolkit1 确实是转换成功啦。build 是成功的,但是rknntoolkit2 就报第一栏的那种错误
回复

使用道具 举报

ameRk

注册会员

积分
91
8#
 楼主| 发表于 2022-7-15 13:34:30 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 12:25
不开推理模式freeze的模型rknntoolkit1也是转不过的

现在的对比情况,就是两套工具下的转换程序的流程是一致的,rknntoolkit1 没有报错并且有RKNN模型生成,rknntoolkit2 报错啦
回复

使用道具 举报

ameRk

注册会员

积分
91
9#
 楼主| 发表于 2022-7-15 14:47:58 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 14:40
tensorflow的接口,pytorch也有类似接口,模型在训练模式和推理模式是不一样的 ...

哦。但是从我这里的试验结果来看,流程是一样的啊(所以tensorflow那一部分也是没有修改的),唯一不同的就是rknntoolkit1 与rknntoolkit2(还有就是参数不同,参数都是根据你们不同版本的文档修改调整的),所以我现在想确认的是  rknntoolkit2 与rknntoolkit1 的改动有这么大吗,从转换结果来看,rknntoolkit1 是支持该 op的,但rknntoolkit2 却不支持,但是我无法看到你们的内部调用情况,所以需要您帮忙分析一下,是不是由于rknntoolkit1 与rknntoolkit2 的不同导致的,如果是这样的话,我好想其他办法解决这个问题,如果是参数或者函数调用的话,那方便指导一下那些参数有可能导致这些情况不!
回复

使用道具 举报

ameRk

注册会员

积分
91
10#
 楼主| 发表于 2022-7-15 15:04:09 | 显示全部楼层
jefferyzhang 发表于 2022-7-15 15:03
两个是不同架构的npu,toolkit也是新开发的。
问题我已经反馈上去。

好的,谢谢啦
回复

使用道具 举报

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

本版积分规则

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


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