2017-06-04 82 views

回答

3

總之,weights是在Tensorflow圖中的變量的唯一名稱,並且W1是Python變量指向Tensorflow變量的名稱。如果您然後將W1分配給一個新變量;例如W2 = W1,您會看到W2的名稱也是weights;不同的python名稱(和變量),相同的Tensorflow名稱(和變量)。

命名一個新的變量,name='weights'將實際名稱爲weights_1:0創建一個變量:

>>> tf.Variable(tf.zeros((2,2)), name="weights") 
<tf.Variable 'weights_1:0' shape=(2, 2) dtype=float32_ref> 
+0

THX,您是否介意談一點關於tensorflow變量和Python變量?因爲我在線看到一些代碼,變量應該在會話中運行,而在會話中,它們使用sess.run(W1),所以這是使用python變量(W1),但是在何處以及如何使用tensorflow變量(權重)? –

+0

python變量只是tensorflow變量的「指針」,但使用它們仍然是操縱tensorflow變量的唯一方法。在任何情況下,sess.run(W1)都運行在張量流圖中 –

1

W1是Python變量的名稱。它旨在用於一個python解釋器,您將使用它來解決代碼中的這個變量。所以如果你需要做一些操作(添加,乘,轉換,初始化),你將使用這個名字。你可以把它想象成一個指針,它知道張量的位置在哪裏。

name='weights'適用於人類。對於更詳細的回答看看here。當你打印python變量時,你會看到這個名字。它也可以用來保存/恢復變量和可視化tensorboard

enter image description here

相關問題