Toybrick

标题: 使用rknn-toolkit load TensorFlow mobilenet-ssd模型失败 [打印本页]

作者: liuyufeng    时间: 2019-11-28 11:05
标题: 使用rknn-toolkit load TensorFlow mobilenet-ssd模型失败
在使用load_tensorflow api 的时候出现如下错误:
--> Loading model
E Catch exception when loading tensorflow model: ./ssd_mobilenet_v1_coco_2018_01_28/frozen_inference_graph.pb!
T Traceback (most recent call last):
T   File "rknn/api/rknn_base.py", line 136, in rknn.api.rknn_base.RKNNBase.load_tensorflow
T   File "rknn/base/RKNNlib/converter/convert_tf.py", line 102, in rknn.base.RKNNlib.converter.convert_tf.convert_tf.__init__
T   File "rknn/base/RKNNlib/converter/tensorflowloader.py", line 53, in rknn.base.RKNNlib.converter.tensorflowloader.TF_Graph_Preprocess.__init__
T AttributeError: 'NoneType' object has no attribute 'op'
done

请问一下该如何解决,使用的是rknn-toolkit版本是rknn-toolkit1.0.0

作者: jefferyzhang    时间: 2019-11-28 11:26
请先升级1.2.1版本试下
作者: liuyufeng    时间: 2019-11-28 20:58
jefferyzhang 发表于 2019-11-28 11:26
请先升级1.2.1版本试下

您好,我下载最新的1.2.1版本之后进行转换还是一样的错误,并且verbose log如下:
W Verbose file path is invalid, debug info will not dump to file.
--> Loading model
D import clients finished
W:tensorflow:From /home/songzhe/.local/lib/python3.6/site-packages/rknn/api/rknn.py:65: extract_sub_graph (from tensorflow.python.framework.graph_util_impl) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.compat.v1.graph_util.extract_sub_graph`
E Catch exception when loading tensorflow model: ./ssd_mobilenet_v2_coco_2018_03_29/frozen_inference_graph.pb!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 137, in rknn.api.rknn_base.RKNNBase.load_tensorflow
E   File "rknn/base/RKNNlib/converter/convert_tf.py", line 107, in rknn.base.RKNNlib.converter.convert_tf.convert_tf.__init__
E   File "rknn/base/RKNNlib/converter/tensorflowloader.py", line 53, in rknn.base.RKNNlib.converter.tensorflowloader.TF_Graph_Preprocess.__init__
E AttributeError: 'NoneType' object has no attribute 'op'
done
--> Building model
Traceback (most recent call last):
  File "ssd_test.py", line 75, in <module>
    rknn.build(do_quantization=True, dataset='./dataset.txt')
  File "/home/songzhe/.local/lib/python3.6/site-packages/rknn/api/rknn.py", line 148, in build
    inputs = self.rknn_base.net.get_input_layers()
AttributeError: 'NoneType' object has no attribute 'get_input_layers'
作者: liuyufeng    时间: 2019-11-28 21:03
jefferyzhang 发表于 2019-11-28 11:26
请先升级1.2.1版本试下

使用的模型是自己生成的,使用github上下载的ssd_mobilenet_v1_coco_2018_01_28上的模型是可以加载并且转化成新的rk模型,但是使用自己训练的模型转换不了,但是我在用tensorflow object detection api去运用模型是可以识别到我训练的东西,也就是模型应该是好的,但是使用rknn-toolkit却转化不了,请问一下该种现象及问题如何解决
作者: jefferyzhang    时间: 2019-11-28 22:52
看log应该是输入节点名字不对
作者: fjnu_hhf    时间: 2019-11-29 09:24
我也是这个问题,卡了好久了。估摸着input_size_list也是容易出错的地方。解决之后能否告知下
作者: liuyufeng    时间: 2019-11-29 09:36
jefferyzhang 发表于 2019-11-28 22:52
看log应该是输入节点名字不对

输入节点我换过很多次了,试过用绝对路径,但是结果还是一样,如果是输入节点名字不对,他报错应该是找不到这个文件才对啊,但是实际上报错不是找不到文件,是我固化之后的pb模型有问题吗?还是说其他问题?
作者: jefferyzhang    时间: 2019-11-29 09:49
node名字是用什么看的?Netron看过么?
作者: liuyufeng    时间: 2019-11-29 10:20
jefferyzhang 发表于 2019-11-29 09:49
node名字是用什么看的?Netron看过么?

名字是在生成的一个graph.pbtxt的文件里面看到的,但是里面有很多这样的node名字,我应该用哪一个呢?不应该是随便一个都可以吗?
作者: jefferyzhang    时间: 2019-11-29 10:59
liuyufeng 发表于 2019-11-29 10:20
名字是在生成的一个graph.pbtxt的文件里面看到的,但是里面有很多这样的node名字,我应该用哪一个呢?不 ...

用Netron看下你就知道了,怎么可能是随便一个。。。
作者: liuyufeng    时间: 2019-11-29 13:51
jefferyzhang 发表于 2019-11-29 10:59
用Netron看下你就知道了,怎么可能是随便一个。。。

大佬,解决了,谢谢大佬
作者: liuyufeng    时间: 2019-11-29 13:58
fjnu_hhf 发表于 2019-11-29 09:24
我也是这个问题,卡了好久了。估摸着input_size_list也是容易出错的地方。解决之后能否告知下 ...

下载一下netron,然后打开你的pb模型,浏览看输入的节点即可,当然,你也可以看生成的graph.pbtxt文件,但是pbtxt文件并不直观,还是使用图形界面直观很多
作者: jefferyzhang    时间: 2019-11-29 16:38





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