ags*_*lid 28 python keras tensorflow
我正在尝试从我的Keras(tensorflow后端)模型创建一个pb文件,以便我可以在iOS上构建它.我正在使用freeze.py,我需要传递输出节点.如何获取Keras模型的输出节点名称?
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py
小智 21
您可以使用Keras model.summary()来获取最后一层的名称.
如果model.outputs不为空,您可以通过以下方式获取节点名称:
[node.op.name for node in model.outputs]
Run Code Online (Sandbox Code Playgroud)
你通过这个会议
session = keras.backend.get_session()
Run Code Online (Sandbox Code Playgroud)
并将所有训练变量转换为consts via
min_graph = convert_variables_to_constants(session, session.graph_def, [node.op.name for node in model.outputs])
Run Code Online (Sandbox Code Playgroud)
之后你可以通过写一个protobuf文件
tensorflow.train.write_graph(min_graph, "/logdir/", "file.pb", as_text=True)
Run Code Online (Sandbox Code Playgroud)
小智 12
如果在Keras中构建模型时未明确指定输出节点,则可以将其打印出来,如下所示:
[print(n.name) for n in tf.get_default_graph().as_graph_def().node]
然后你需要做的就是找到合适的,通常类似于激活功能的名称.您可以使用您output_node_names
在freeze_graph
函数中找到的字符串名称作为值.
归档时间: |
|
查看次数: |
29281 次 |
最近记录: |