tensorflow和一個簡單的問題的一個新的初學者: 我看到一個代碼:兩個張量變量名稱有什麼區別?
W1 = tf.Variable(tf.zero((2,2)),name="weights")
什麼是「W1」和「權重」的有什麼不同?
tensorflow和一個簡單的問題的一個新的初學者: 我看到一個代碼:兩個張量變量名稱有什麼區別?
W1 = tf.Variable(tf.zero((2,2)),name="weights")
什麼是「W1」和「權重」的有什麼不同?
總之,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>
W1
是Python變量的名稱。它旨在用於一個python解釋器,您將使用它來解決代碼中的這個變量。所以如果你需要做一些操作(添加,乘,轉換,初始化),你將使用這個名字。你可以把它想象成一個指針,它知道張量的位置在哪裏。
name='weights'
適用於人類。對於更詳細的回答看看here。當你打印python變量時,你會看到這個名字。它也可以用來保存/恢復變量和可視化tensorboard:
THX,您是否介意談一點關於tensorflow變量和Python變量?因爲我在線看到一些代碼,變量應該在會話中運行,而在會話中,它們使用sess.run(W1),所以這是使用python變量(W1),但是在何處以及如何使用tensorflow變量(權重)? –
python變量只是tensorflow變量的「指針」,但使用它們仍然是操縱tensorflow變量的唯一方法。在任何情況下,sess.run(W1)都運行在張量流圖中 –