【问题标题】:Need to find out the which output nodes names needs to be pass for Tensorflowjs converter需要找出哪些输出节点名称需要传递给 Tensorflowjs 转换器
【发布时间】:2018-12-13 10:07:11
【问题描述】:

我是 Tensorflow 的新手,我开发了一个模型,它使用 Tensorflow、OpenCV 检测一种特殊类型的卡片,我能够在离线模式下使用我的网络摄像头正确检测卡片,但我想将它迁移到web (tensorflowjs),但我在转换方面遇到了一些问题。

我有检查点、元数据文件以及冻结的推理图 pb 文件

我使用以下代码生成了节点名称列表

import tensorflow as tf


modelName = './<path_to_meta_file>'

tf.reset_default_graph()
with tf.Session() as sess:
    saver = tf.train.import_meta_graph(modelName)
    graph_def = tf.get_default_graph().as_graph_def()
    node_list=[n.name for n in graph_def.node]


print(node_list)

这是输出文件 Output node names using the tensorflow import_meta_graph()

我关心的是我应该在下面的命令中传递什么输出节点名称

tensorflowjs_converter --input_format=tf_frozen_model --output_node_names='<what to write here from that output txt file?>' ./frozen_inference_graph.pb ./web_model

我想在客户端使用真实的网络摄像头运行我现有的模型,任何解决方案和建议都将受到高度赞赏

设置详情:

张量流 1.12.0

使用 Anaconda 的 Python 3.5。

【问题讨论】:

    标签: javascript python tensorflow tensorflowjs-converter


    【解决方案1】:

    对我来说,tensorflowjs_converter 通过使用“Placeholder”作为 --output_node_names 的参数来运行:

    tensorflowjs_converter --input_format=tf_frozen_model --output_format=tensorflowjs --output_node_names=Placeholder ./frozen_inference_graph.pb ./web_model

    但不确定这是否是一个有效的解决方案,因为即使转换器在没有错误消息的情况下运行,我也会从 model_pruner 获得输出:“之前的图形大小:1187 个节点,1221 个边。之后的图形大小:1 个节点, 0 条边。” - 所以我的输入实际上减少了,这似乎也不对。


    更新: 经过两个多小时的研究,我发现张量板指示节点名称(参考this page)。在我的情况下,事实证明--output_node_names=final_result - 并且占位符不超过名称已经说过的内容,一个需要填充有效内容的占位符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      相关资源
      最近更新 更多