深度學習筆記 tensorflow基本概念

2021-08-07 15:37:45 字數 1714 閱讀 5612

用tensorflow這樣工具的原因是:它允許我們用計算圖(computational graphs)的方式建立網路.

下面就是對計算圖的直觀講解。

例如:計算圖所建立的只是乙個網路框架。在程式設計時,並不會有任何實際值出現在框架中。所有權重和偏移都是框架中的一部分,初始時至少給定初始值才能形成框架。因此需要initialization初始化。

請模擬管道構建來理解計算圖的用法

構造階段(construction phase):

組裝計算圖(管道)

計算圖(graph):

要組裝的結構。由許多操作組成。

操作(ops):

接受(流入)零個或多個輸入(液體),返回(流出)零個或多個輸出。

資料型別:

主要分為張量(tensor)、變數(variable)和常量(constant)

張量:多維array或list(管道中的液體)

tensor_name=tf.placeholder(type, shape, name)
引數說明:

dtype: 資料型別

shape: 張量

name: 名稱(可選引數)

例如:

x = tf.placeholder(float, shape=(1024, 1024))
變數:

在同一時刻對圖中所有其他操作都保持靜態的資料(管道中的閥門)

####建立語句:

name_variable = tf.variable(value, name)
初始化語句:個別變數
init_op=variable.initializer()
#所有變數

init_op=tf.initialize_all_variables()
更新語句:
update_op=tf.assign(variable to be updated, new_value)
常量:

無需初始化的變數

建立語句:

name_constant=tf.constant(value)
執行階段(execution phase):

使用計算圖(獲取液體)

會話:執行(launch)構建的計算圖。可選擇執行裝置:單個電腦的cpu、gpu,或電腦分布式甚至手機。

建立語句:常規

sess = tf.session()
#互動

sess = tf.interactivesession()
互動方式可用tensor.eval()獲取值,ops.run()執行操作

關閉

sess.close()
執行操作:使用建立的會話執行操作

執行語句:

sess.run(op)
送值(feed):輸入操作的輸入值(輸入液體)

語句:

sess.run([output], feed_dict=)
取值(fetch):獲取操作的輸出值(得到液體)

語句:單值獲取

sess.run(one op)
多值獲取
sess.run([a list of ops])

深度學習筆記

在深度神經網路中,通常使用一種叫修正線性單元 rectified linear unit,relu 作為神經元的啟用函式。relu函式其實是分段線性函式,把所有的負值都變為0,而正值不變,這種操作被成為單側抑制。可別小看這個簡單的操作,正因為有了這單側抑制,才使得神經網路中的神經元也具有了稀疏啟用性...

深度學習筆記

如果沒有啟用函式,或則是線性啟用函式,g z z,那麼在深度神經網路中,相當於都做的是線性變換,多個線性變換的組合還是線性變換。這樣的結果和邏輯回歸沒什麼區別,也就是說,這種情況下,無論神經網路的深度有多深,也就等價於乙個一層的網路,隱藏層沒什麼作用。因此需要非線性啟用函式。1.什麼時候插入,ski...

深度學習筆記

tensorflow 不僅是乙個實現機器學習演算法的介面,也是一種框架,也可用於線性回歸 邏輯回歸 隨機森林等演算法 tensorflow 使用資料流圖來規劃計算流程,每個運算操作作為乙個節點 node,節點之間的連線稱為邊,邊中流動的資料稱為張量,故而得名 tensorflow,預算操作可以有自己...