Toybrick

转换自己的 tensorflow 模型出错

qliu

注册会员

积分
162
发表于 2019-11-14 19:15:01    查看: 5829|回复: 5 | [复制链接]    打印 | 显示全部楼层
本帖最后由 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

注册会员

积分
162
 楼主| 发表于 2019-11-14 19:17:49 | 显示全部楼层
也尝试了在 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

版主

积分
12844
发表于 2019-11-14 19:52:48 | 显示全部楼层
verbose=True打开看下详细log。
还有你这个pb模型你自己tf读取过能正常推理么
回复

使用道具 举报

qliu

注册会员

积分
162
 楼主| 发表于 2019-11-14 20:13:55 | 显示全部楼层
开启 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

版主

积分
12844
发表于 2019-11-15 09:33:44 | 显示全部楼层
训练生成pb的tf版本和你装rknn转换时候用的tf版本是否一致
回复

使用道具 举报

qliu

注册会员

积分
162
 楼主| 发表于 2019-11-19 10:03:28 | 显示全部楼层
已解决,我这里用的 pb 文件是 saved model 文件夹里的,应该用 freeze 过后生成的 pb 文件。
回复

使用道具 举报

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

本版积分规则

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


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