javascript - 需要找出需要为 Tensorflowjs 转换器传递哪些输出节点名称

标签 javascript python tensorflow tensorflowjs-converter

我是 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

我想在客户端使用真实的网络摄像头运行我现有的模型,非常感谢任何解决方案和建议

设置细节:

tensorflow 1.12.0

使用 Anaconda 的 Python 3.5。

最佳答案

对我来说,tensorflowjs_converter 通过使用“占位符”作为 --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 - Placeholder 只不过是名称已经说明的内容,一个需要填充有效内容的占位符。

关于javascript - 需要找出需要为 Tensorflowjs 转换器传递哪些输出节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53759373/

相关文章:

Javascript document.getElement insideHTML 未定义

javascript - 使用 python Flask 实现 jQuery 自动完成

python - 灯泡/Neo4j : authentication error when creating Graph object

python - 属性错误: 'Model' object has no attribute '_name' during input layer concatenation

python - 类型错误 : can't pickle _thread. RLock 对象

javascript - 如何从 Bing api 获取头条新闻

javascript - css 样式表没有被添加

javascript - Highcharts 图表轴超过设定的最小值和最大值

python - 如何在 pandas 数据框中创建 "never"过滤器

python - tf.while_loop 并行运行时给出错误结果