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

标签 python tensorflow keras

我正在尝试从我的 Keras(tensorflow 后端)模型创建一个 pb 文件,以便可以在 iOS 上构建它。我正在使用 freeze.py,我需要传递输出节点。如何获取 Keras 模型的输出节点的名称?

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py

最佳答案

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

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

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

你通过

获得 session
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)

关于python - 如何获取 Keras 模型中 tensorflow 输出节点的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028175/

相关文章:

python - 动态调用方法名?

tensorflow - 如何在 Google Colab 中将 TensorFlow 2.0 设置为默认版本

python - 为什么在Tensorflow上的PTB教程中运行纪元时构造feed_dict?

python - 如何使用 EC2 实例 (GPU) 在 S3 中为深度学习模型加载图像

python - cv2.findContours 找不到轮廓

python - 为 python 脚本(bot)启动预定作业的最佳方式

python - 使用矩阵运算对两个变量进行迭代求和

tensorflow - 多标签二元分类中的 Keras class_weight

keras - 为什么 keras-rl 示例总是在输出层选择线性激活?

tensorflow - keras.model.predict 引发 ValueError : Error when checking input