【发布时间】:2017-12-11 05:08:22
【问题描述】:
当我们使用 variable_scope 时,我们通常将第一个参数 (name_or_scope) 设置为 variable_scope 的名称。并且当我们将重用变量设置为“True”时,我们可以在 variable_scope 内共享该变量。
但是,我发现在tensorflow API(例如Bahdanau attention,或tf.layers.Dense)内部,有变量范围,其第一个参数(name_or_scope)设置为None,第二个参数(default_name)设置正如我们认为的范围名称。
查了tf.variable_scope的代码,发现:
如果
name_or_scope不是None,则按原样使用。如果scope为无, 然后使用default_name。在这种情况下,如果同名 以前在同一范围内使用过,它将由 将_N附加到它。
在这种情况下,我不能在 for 循环中使用它,因为每次调用 variable_scope 时,它都会创建具有不同名称的新 variable_scope。
我找不到任何解释此功能的地方(我的意思是 name_or_scope 设置为 None)。
有人解释一下吗?
【问题讨论】:
-
@ManojJadhav 我的问题是:当 name_or_scope = None 时 variable_scope 如何工作
标签: python variables tensorflow gpu