繁体   English   中英

Tensorflow VariableScope:original_name_scope与名称

[英]Tensorflow VariableScope: original_name_scope vs name

在TensorFlow中, VariableScope类同时具有original_name_scopename属性。 它们之间有什么区别,何时应在另一个之上使用? 我似乎找不到太多关于它们的文档。

用例:我正在使用tf.get_collection(key, scope)方法。 它的第二个参数需要一个字符串,但是我的变量my_scope具有类型VariableScope 我都在尝试

tf.get_collection(key, my_scope.name)

tf.get_collection(key, my_scope.original_scope_name)

两者似乎都可行,但是我不确定哪个是“正确的”,以后也不会给我带来麻烦。

foo.name返回范围的名称(字符串)。 在另一方面, foo.original_name_scope返回相同的字符串作为foo.name ,当范围被重建时除外。 在这种情况下,所有子作用域都会根据需要附加一个_# ,以使对foo.original_name_scope所有调用都为foo.original_name_scope的每个实例返回唯一的内容。

例如,在此代码中:

with tf.variable_scope('a') as a:
    print(a.name)
    print(a.original_name_scope)
    print(a.original_name_scope)

with tf.variable_scope('a') as b:
    print(b.name)
    print(b.original_name_scope)

退货

a
a/
a/
a
a_1/

需要注意的是调用original_name_scope对应不同的作用域实例a返回不同的值。

大概可以通过它区分具有相同名称的不同作用域实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM