小編接續莫煩的教程 繼續教大家 建置一個有隱藏層的神經網路

完整代碼在這裡

 

 

對於tensorflow 完整架構基本上就是如下

模型定義(modeling):抽象化

    1.模型建構

    2.輸入 輸出項的定義:placeholder

    3.定義loss 函數

    4.選擇最佳化函數

執行階段(run sess)

    用迴圈一次一次的run

    訓練時用feed_dict 餵入資料

 

 

上圖即為我們所組裝的神經網路

在第1層中 我們放置了輸入為1顆神經元 輸出為10顆神經元的網路

       2         我們接續了上一層10顆神經元的輸入 輸出為1顆神經元

 

這裡可以舉個例子讓大家了解

第1層我們會創造出 weights:(1,10) bias:(1,10) 的矩陣

假設我們的inputs是 (300,1) 的矩陣

那麼  Wx_plus_b = tf.matmul(inputs, Weights) + biases

h1~h10(300組*10個神經元) = inputs(300,1)*weights(1*10)

每個神經元之後再加上一個biase 即可形成

Wx_plus_b(300組*10個神經元) = tf.matmul(inputs, Weights) + biases(1,10)

這裡 Wx_plus_b 分表代表h1~h10的輸出

下一層以此類推 就能輸出 y:(300,1)

這裡有tensorflow 官網的示意圖 大家可以參考看看

 

 

 

 

我們即將用這網路學習二次曲線方程式  y=x(平方)-0.5

 

下面是我本人整理過對代碼的說明

 

 

下面是結果圖 如果順利的話 應該可以看到神經網路學習的過程

藍色的點代表我們創造出的數據

紅色的線 代表神經網路再學的

神經網路會利用倒傳遞法 儘量的讓loss 愈小愈好

 

arrow
arrow
    創作者介紹
    創作者 Darwin的AI天地 的頭像
    Darwin的AI天地

    我的小小AI 天地

    Darwin的AI天地 發表在 痞客邦 留言(8) 人氣()