1. 程式人生 > >Tensorflow 學習筆記 -----基礎使用

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]]