小編接續莫煩的教程 繼續教大家 建置一個有隱藏層的神經網路
完整代碼在這裡
對於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 愈小愈好
留言列表