Toybrick

标题: 转换自己的 tensorflow 模型出错 [打印本页]

作者: qliu    时间: 2019-11-14 19:15
标题: 转换自己的 tensorflow 模型出错
本帖最后由 qliu 于 2019-11-14 19:16 编辑

在 rk3399pro 上转换自己的 tensorflow 模型出错。错误如下:
E Catch exception when loading tensorflow model: ../dl_models/enhancement/E0815_99/saved_model.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 37, in rknn.base.RKNNlib.converter.tensorflowloader.TF_Graph_Preprocess.__init__
T   File "rknn/base/RKNNlib/converter/tensor_util.py", line 13, in rknn.base.RKNNlib.converter.tensor_util.TensorLabelOperator.tensor_label_split
T ValueError: too many values to unpack (expected 2)

请问有没有什么办法帮助调试?


作者: qliu    时间: 2019-11-14 19:17
也尝试了在 macOS 上转换模型,得到了不同的错误:

E Catch exception when loading tensorflow model: ../dl_models/enhancement/E0815_99/saved_model.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 44, in rknn.base.RKNNlib.converter.tensorflowloader.TF_Graph_Preprocess.__init__
E   File "rknn/base/RKNNlib/converter/tensorflowloader.py", line 46, in rknn.base.RKNNlib.converter.tensorflowloader.TF_Graph_Preprocess.__init__
E google.protobuf.message.DecodeError: Error parsing message
作者: jefferyzhang    时间: 2019-11-14 19:52
verbose=True打开看下详细log。
还有你这个pb模型你自己tf读取过能正常推理么
作者: qliu    时间: 2019-11-14 20:13
开启 verbose 之后只多了一条日志:
D import clients finished

这个模型是我们自己训练的,在 tensorflow 上可以运行。转换的代码如下:
    rknn = RKNN(verbose=True, verbose_file='./verbose.log')
    rknn.config(channel_mean_value='0 0 0 255', reorder_channel='0 1 2')

    ret = rknn.load_tensorflow(
            '../dl_models/enhancement/E0815_99/saved_model.pb',
            inputs=['input:0'],
            outputs=['clip_by_value:0'],
            input_size_list=[[1, 640, 640, 1]])
    if ret != 0:
        print('failed to load tf model')
        exit(ret)

    ret = rknn.build(do_quantization=False, pre_compile=False)
    if ret != 0:
        print('failed to build rknn model')
        exit(ret)

    ret = rknn.export_rknn('enhancement.rknn')
    if ret != 0:
        print('failed to export rknn model')
        exit(ret)

    rknn.release()
作者: jefferyzhang    时间: 2019-11-15 09:33
训练生成pb的tf版本和你装rknn转换时候用的tf版本是否一致
作者: qliu    时间: 2019-11-19 10:03
已解决,我这里用的 pb 文件是 saved model 文件夹里的,应该用 freeze 过后生成的 pb 文件。




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