我不明白为什么我们已经有了tf.name_scope
时也需要功能tf.variable_scope
。从Tensorflow官方API中,我看到tf.variable_scope
的功能更强大,因为它可以对tf.get_variable
产生影响。当我们创建图层并希望共享变量时,我们总是使用tf.variable_scope
和tf.name_scope
。但是,我尝试从Nvidia在GitHub上发布的代码中学到一些新知识。我发现编码人员经常使用tf.name_scope
。为什么我们仍然需要此功能?
答案 0 :(得分:0)
您可以使用App Owns Data
在用tf.variable_scope
和操作创建的两个变量上添加前缀:正如您所说,这还允许变量共享,但它也使第一个调用tf.get_variable
在此范围内的新变量的定义。
tf.get_variable
仅在操作中添加前缀 :使用tf.name_scope
在tf.name_scope
外部定义的变量没有前缀,因此tf.get_variable
被忽略完全针对此变量:您不会以任何方式声明前缀。
当您想创建一个使用在其外部声明的变量的操作块(使用tf.name_scope
)时,这很有用。该变量甚至可以同时被多个操作块使用。