Toybrick

rknn.load_tensorflow 出错.

hfu

新手上路

积分
38
楼主
发表于 2019-6-25 03:20:41 | 显示全部楼层
20170512-110547.pb 似乎无法load。我用https://github.com/nyoki-mtl/keras-facenet 把20170512-110547的checkpoint文件转换到h5格式。 再用以下code重新freeze到pb
文件就可以用rknn load了。 最终rknn 测试结果96fps。

# Clear any previous session.
tf.keras.backend.clear_session()

save_pb_dir = "./model"
model_fname = "./model/facenet_keras.h5"


def freeze_graph(
    graph,
    session,
    output,
    save_pb_dir=".",
    save_pb_name="frozen_model.pb",
    save_pb_as_text=False,
):
    with graph.as_default():
        graphdef_inf = tf.graph_util.remove_training_nodes(graph.as_graph_def())
        graphdef_frozen = tf.graph_util.convert_variables_to_constants(
            session, graphdef_inf, output
        )
        graph_io.write_graph(
            graphdef_frozen, save_pb_dir, save_pb_name, as_text=save_pb_as_text
        )
        return graphdef_frozen


# This line must be executed before loading Keras model.
tf.keras.backend.set_learning_phase(0)

model = load_model(model_fname)
model.summary()
session = tf.keras.backend.get_session()

INPUT_NODE = [t.op.name for t in model.inputs]
OUTPUT_NODE = [t.op.name for t in model.outputs]
print("\nINPUT_NODE: {}\nOUTPUT_NODE: {}".format(INPUT_NODE, OUTPUT_NODE))
frozen_graph = freeze_graph(
    session.graph,
    session,
    [out.op.name for out in model.outputs],
    save_pb_dir=save_pb_dir,
)


# ## Convert `.pb` file to RKNN model
#
# Run `convert_rknn.py`
回复

使用道具 举报

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

本版积分规则

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


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