首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow TOCO python API

Tensorflow TOCO python API
EN

Stack Overflow用户
提问于 2018-05-01 07:45:18
回答 2查看 1.4K关注 0票数 0

我在这里遵循tensorflow for poets (tflite)教程:https://codelabs.developers.google.com/codelabs/tensorflow-for-poets-2-tflite/#3

我正在尝试使用python TOCO API:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/toco/g3doc/python_api.md将定制的图形从.pb转换为tflite

下面的代码加载retrained_graph.pb文件,找到输入和输出张量,然后调用toco_convert并写入.tflite文件。

代码语言:javascript
复制
    import tensorflow as tf
     def load_graph(graph_filename):
     with tf.gfile.GFile(graph_filename, "rb") as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())

     with tf.Graph().as_default() as graph:
        tf.import_graph_def(
          graph_def,
          input_map=None,
          return_elements=None,
          name="prefix",
          op_dict=None,
          producer_op_list=None
         )


    graph = load_graph("retrained_graph.pb")
    x = graph.get_tensor_by_name('prefix/input:0') #input tensor
    y = graph.get_tensor_by_name('prefix/final_result:0') #output tensor


    with tf.Session(graph=graph) as sess:
       tflite_model = tf.contrib.lite.toco_convert(sess.graph_def, [x], [y])
       open("test.tflite", "wb").write(tflite_model)

这将生成一个test.tflite文件。为了检查它是否正常工作,我从poets的tf运行label_image脚本,这会产生以下错误:

KeyError:“名称'import/input‘指的是不在图形中的操作。”

为了寻找解决方案,我尝试将input_layer = "input“更改为input_layer = "Mul",但这只会产生以下错误:

KeyError:“名称'import/Mul‘引用不在图形中的操作。”

如果对我的错误之处有任何建议,我将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2018-05-01 09:51:04

您是否尝试过使用summarize_graph检查模型的潜在输入/输出节点名称?

票数 0
EN

Stack Overflow用户

发布于 2018-05-01 12:10:46

根据您的代码,您的输入名称是“input_layer /input”,而不是"input“。改用input_layer="prefix/input"应该可以解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50109656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档