如何在 Keras 模型中获取 tensorflow 输出节点的名称?

新手上路,请多包涵
阅读 592
2 个回答

您可以使用 Keras model.summary() 获取最后一层的名称。

如果 model.outputs 不为空,您可以通过以下方式获取节点名称:

 [node.op.name for node in model.outputs]

你通过

session = keras.backend.get_session()

然后通过以下方式将所有训练变量转换为常量

min_graph = convert_variables_to_constants(session, session.graph_def, [node.op.name for node in model.outputs])

之后你可以通过写一个protobuf文件

tensorflow.train.write_graph(min_graph, "/logdir/", "file.pb", as_text=True)

原文由 BerndSchmitt 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果在 Keras 中构建模型时没有明确指定输出节点,可以这样打印出来:

[print(n.name) for n in tf.get_default_graph().as_graph_def().node]

然后你需要做的就是找到合适的,这通常类似于激活函数的名称。您可以将找到的这个字符串名称用作 output_node_namesfreeze_graph 函数中的值。

原文由 Oleg F. 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题