![](/img/trans.png)
[英]Tensorflow: AttributeError: 'NoneType' object has no attribute 'original_name_scope'
[英]Tensorflow VariableScope: original_name_scope vs name
在TensorFlow中, VariableScope
类同时具有original_name_scope
和name
属性。 它们之间有什么区别,何时应在另一个之上使用? 我似乎找不到太多关于它们的文档。
用例:我正在使用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.