2017-06-12 97 views
0

如果我有張量的參考,有沒有辦法確定張量的變量範圍?張量的.name應該包含變量作用域名稱,但是手動解析這個看起來有點像一個黑客的解決方法。有沒有更強大的方法來找到變量範圍?謝謝!TensorFlow - 獲取張量的變量範圍?

回答

2

名稱範圍是一個有用的意思,用給定名稱作爲範圍中的張量和運算符的前綴,但它不是唯一的,甚至不是必需的。考慮到具有相同名稱的

with tf.variable_scope('foo'): 
    x = tf.zeros((), name='bar') 

x = tf.zeros((), name='foo/bar') 

結果x

可變範圍甚至可以被連接起來:

with tf.variable_scope('foo'): 
    with tf.variable_scope('bar'): 
     x = tf.zeros((), name='qux') 

如此發言的「該」的x可變範圍具有更少感。

但請注意,這些名稱的路徑性質使其適用於os.path(即使在Windows上)。例如,要獲得張量名稱的「路徑」部分(可能是您要查找的「變量範圍」),您可以使用

os.path.split(x.name)[0] 
+0

我明白了。我正在尋找一種通用的方法來獲取張量引用的變量範圍,以便我可以決定使用variable_scope(...,reuse = True)來重用* related *變量。具體來說,根據該圖層的輸出張量獲取一個貢獻層的權重。在這種情況下使用像分裂這樣的路徑可能會起作用。謝謝! –