Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow:什么是;输出“U节点名称”;对于模型中的freeze_graph.py,是否使用模型?_Tensorflow_Recurrent Neural Network - Fatal编程技术网

Tensorflow:什么是;输出“U节点名称”;对于模型中的freeze_graph.py,是否使用模型?

Tensorflow:什么是;输出“U节点名称”;对于模型中的freeze_graph.py,是否使用模型?,tensorflow,recurrent-neural-network,Tensorflow,Recurrent Neural Network,我用seq2seq=tf.nn.seq2seq.embedded\u attention\u seq2seq训练了一个tf.nn.seq2seq.model\u,与中的示例非常相似 现在我想使用freeze\u graph.py冻结图形。如何在模型中找到“输出节点名称” 您可以通过将可选的name=“myname”参数传递给几乎所有构建节点的Tensorflow操作符,为模型中的节点选择名称。如果不指定图形节点的名称,Tensorflow将自动为它们选择名称,但是如果您想使用诸如freeze_g

我用
seq2seq=tf.nn.seq2seq.embedded\u attention\u seq2seq
训练了一个
tf.nn.seq2seq.model\u,与中的示例非常相似


现在我想使用
freeze\u graph.py
冻结图形。如何在模型中找到“输出节点名称”

您可以通过将可选的
name=“myname”
参数传递给几乎所有构建节点的Tensorflow操作符,为模型中的节点选择名称。如果不指定图形节点的名称,Tensorflow将自动为它们选择名称,但是如果您想使用诸如freeze_graph.py之类的工具来识别这些节点,那么最好自己选择名称。这些名称就是传递给输出节点名称的名称。

您可以通过以下方式获得模型中的所有节点名称:

node_names=[tf.get_default_graph().as_graph_def().node中节点的node.name]
或通过还原图形:

saver=tf.train.import\u meta\u图(/path/to/meta/graph)
sess=tf.Session()
saver.restore(ses、/path/to/checkpoints)
graph=sess.graph
打印([node.name用于图形中的节点。如图所示\u def().node])
您可能需要对这些节点进行筛选,以仅获取输出节点或所需的节点,但这至少可以帮助您获取已训练过的图形的名称,并且无法使用为每个节点定义的
name='some_name'
重新训练


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

谢谢,我想我现在已经了解了基本概念,但我仍在努力使用带有桶的模型。。。我有4个bucket,每个bucket都有一个RNN,然后是嵌入\u注意\u解码器,然后是序列\u丢失,每个bucket都由几个单元格组成,我可以给它们命名。但我看不到一个可以传递给“output\u node\u names”的输出节点。我是否需要在seq2seq.py代码中添加最后一个节点?我有一个输出节点来表示“output\u node\u names”还是四个?要传递哪些节点取决于要计算的内容。例如,对于推理图,通常只使用表示模型输出的一个节点。基本上---在运行图形时,应该使用希望传递给session.run()的节点。(您不需要命名图形中的所有内容,只需命名您想要知道其值的一两个节点。)仍然不清楚如何冻结此特定的seq2seq图形您可以更具体地指定在何处传递此参数吗?它是
train.py
脚本的参数吗?如何指定要命名的节点?对,在seq2seq模型中有数千个节点。它们依赖于bucket。这会生成图中的每个节点名称,不一定是输出。其中有一个输入错误(
resore
应该是
restore
)。我试图编辑,但编辑需要更改至少6个字符。。。有人知道为什么吗?+将tf.get_default_graph更改为tf.get_default_graph()(奇怪的是,程序的编辑规则应该是6个字符)