Tensorflow:model_with_buckets模型中freeze_graph.py的"output_node_names"是什么?

WS9*_*S91 13 tensorflow recurrent-neural-network

我培养了tf.nn.seq2seq.model_with_buckets具有seq2seq = tf.nn.seq2seq.embedding_attention_seq2seq非常相似的例子Tensorflow教程.

现在我想使用冻结图表freeze_graph.py.如何在模型中找到"output_node_names"?

小智 7

您可以通过将可选name="myname"参数传递给构建节点的任何Tensorflow运算符来为模型中的节点选择名称.如果您没有指定图形节点,Tensorflow会自动选择图形节点的名称,但如果您想将这些节点识别为像freeze_graph.py这样的工具,那么最好自己选择名称.这些名称是您传递给output_node_names的名称.

  • 尚不清楚如何冻结此特定seq2seq图 (2认同)

Eng*_*ero 7

您可以使用以下内容获取模型中的所有节点名称:

node_names = [node.name for node in tf.get_default_graph().as_graph_def().node]
Run Code Online (Sandbox Code Playgroud)

或者恢复图形:

saver = tf.train.import_meta_graph(/path/to/meta/graph)
sess = tf.Session()
saver.restore(sess, /path/to/checkpoints)
graph = sess.graph
print([node.name for node in graph.as_graph_def().node])
Run Code Online (Sandbox Code Playgroud)

您可能需要过滤这些以仅获取您的输出节点,或仅获取您想要的节点,但这至少可以帮助您获取已训练的图的名称,并且无法name='some_name'为每个节点定义重新训练。

理想情况下,您希望为name稍后要访问的每个操作或张量定义一个参数。

  • 这会产生图中的每个节点名称,不一定是输出。 (2认同)
  • 那里有一个错字(`resore` 应该是`restore`)。我试图编辑,但编辑需要更改至少 6 个字符...有人知道为什么吗? (2认同)