簡體   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