import tensorflow as tf
a = tf.Variable(1.0,name='a')
b = tf.Variable(2.0,name='b')
c = tf.add(a,b)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(c))
sess.close()
a,b是Variable,而c是Tensor。
注: 在TensorFlow中,變量的定義和初始化是分開的,所有關於圖變量的賦值和計算都要通過tf.Session的run來進行。想要將所有圖變量進行集體初始化時應該使用tf.global_variables_initializer。
Variable和Tensor之間的區別:
1. Variable是可更改的,而Tensor是不可更改的。
2. Variable用於存儲網絡中的權重矩陣等變量,而Tensor更多的是中間結果等。
3. Variable是會顯示分配內存空間的,需要初始化操作(assign一個tensor),由Session管理,可以進行存儲、讀取、更改等操作。相反地,諸如Const, Zeros等操作創造的Tensor,是記錄在Graph中,所以沒有單獨的內存空間;而其他未知的由其他Tensor操作得來的Tensor則是隻會在程序運行中間出現。
4. Tensor可以使用的地方,幾乎都可以使用Variable。
.tf.Variable與tf.placeholder區別:
tf.Variable適合一些需要初始化或被訓練而變化的權重或參數,而tf.placeholder適合通常不會改變的被訓練的數據集。
例如:
# 輸入的樣本
X = tf.placeholder(tf.float32, [784])
y = tf.placeholder(tf.float32, [10])
# 權重參數
W = tf.Variable(tf.float32, [784, 10])
b = tf.Variable(tf.float32, [10])
參考文獻:https://blog.csdn.net/u013841196/article/details/82960765