Tensorflow實戰-前向傳播演算法
阿新 • • 發佈:2018-11-10
本文介紹最簡單的全連線網路結構的前向傳播演算法
之所以稱之為全連線神經網路,是因為相鄰兩層之間任意兩個節點之間都有連線
以一個簡單的判斷零件是否合格的三層全連線神經網路作為例子
記x=[x1,x2],w1=,w2=
通過矩陣乘法表示如下:
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)
詳細Python程式碼如下:
import tensorflow as tf import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #宣告w1、w2兩個變數,這裡還通過seed引數設定了隨機種子, #這樣可以保證每次執行得到的結果是一樣的。 w1 = tf.Variable(tf.random_normal((2,3),stddev=1,seed=1)) w2 = tf.Variable(tf.random_normal((3,1),stddev=1,seed=1)) #暫時將輸入的特徵向量定義為一個常量,注意這裡x是一個1*2的矩陣。 x = tf.constant([[0.7,0.9]]) #通過前向傳播演算法獲得神經網路輸出。 a = tf.matmul(x,w1) y = tf.matmul(a,w2) sess = tf.Session() #這裡不能直接通過sess.run(y)來獲取y的取值, #因為w1和w2都還沒有執行初始化過程,以下兩行分別初始化了w1和w2兩個變數。 sess.run(w1.initializer) sess.run(w2.initializer) #輸出[[3.95757794]] print(sess.run(y)) sess.close()
神經網路整個訓練流程圖如下: