Tensorflow 學習筆記 -----基礎使用
tf.Variable:
TensorFlow中的變數特指深度學習機制中,控制輸入到輸出對映的可以變化的資料,這些變化資料隨著訓練迭代的進行,不斷地改變數值,不斷優化,使輸出的結果越來越接近於正確的結果。
Variable() 構造器需要一個初始值,可以是任意型別和shape 的Tensor
初始值定義了變數的type和shape。構造完成之後,變數的type和shape 是固定的。可以使用assign 方法來修改變數的值。
如果你想修改變數的shape,你必須使用assign 操作,並且 validate_shape=False
所有操作承載的Tensor 類傳遞給variables. 所以你可以僅僅通過對變數執行算術來對圖中新增節點。
程式碼:
import tensorflow as tf
state = tf.Variable(0, name='counter')
print(state.name)
one = tf.constant(1)
new_value = tf.add(state, one)
update = tf.assign(state, new_value)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for _ in range(3):
sess.run(update)
print(sess.run(state))
結果:
counter_2:0
1
2
3
佔位符:用於傳入外部資料。
tf.placeholder(dtype, shape=None, name=None)
返回型別:Tensor
TensorFlow中載入圖片的維度為[batch, height, width, channels]
故placeholder的shape可寫為[None, None, None, 3]
data = tf.placeholder(tf.float32, shape=[None, None, None, 3])
feed的資料以字典的形式傳入
feed_dict = {data:images}
np:
matrix = numpy.array([ ])
matrix.sum(axis = 0) # 1:各行求和 0:各列求和
np.random.randint(0,10,size=(4,3))
結果:[[5 1 4]
[3 5 6]
[6 8 8]
[4 5 9]]