使用tf.name_scope

时间:2017-01-14 03:31:54

标签: tensorflow

我的问题是在教程代码ptb/reader.py中使用tf.name_scope

  with tf.name_scope(name, "PTBProducer", [raw_data, batch_size, num_steps]):
      #use raw_data, batch_size, num_steps to construct tf objects 

使用列表[raw_data,batch_size,num_steps]调用tf.name_scope的目的是什么? raw_data是一个python列表,batch_sizenum_steps是python int。根据{{​​3}}的文件:

tf.name_scope(name, default_name=None, values=None): This context manager validates that the given values are from the same graph, makes that graph the default graph, and pushes a name scope in that graph (see Graph.name_scope() for more details on that).

raw_databatch_sizenum_step不是图表中的任何节点。通过验证它们是什么意思来自同一个图表?事实上,当从tf.name_scope调用中删除列表时代码仍然运行:

      with tf.name_scope(name, "PTBProducer"):
      #use raw_data, batch_size, num_steps to construct tf objects 

使用tf.name_scope和不使用values=[raw_data,batch_size,num_steps]调用username的区别是什么?

1 个答案:

答案 0 :(得分:3)

ptb / reader.py错误地使用了tf.name_scope()参数。图元素应该通过。

name_scope()将使默认图形上下文与传入元素的图形匹配。如果您正在处理多个图形,这非常有用。

如果(图表元素)列表不是全部来自同一图表,

tf.name_scope将引发错误。