iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
1

接續昨天的內容,我們已經建立好深度學習的多層感知器模型,接下來就要準備利用反向傳播演算法進行訓練。反向傳播演算法(Back Propagation)在先前第8篇已有稍微介紹過了,這邊就不特別多做說明,那麼來一邊實作練習一邊做說明吧。

如何對深度學習模型進行訓練:

  • 定義訓練方式
    在開始訓練之前,我們要先設定訓練方式,這邊所使用的是compile方法。

可以看到compile方法裡有3個參數:loss代表設定損失函數,損失函數可以把它想成是在計算誤差,而選用的cross entropy是深度學習中常用的損失函數,訓練效果比較好;optimizer代表設定最佳化方法,用意是在更新權重並縮小誤差,使用adam可以更快速有效率的收斂,提升預測的準確率;metrics則是在設定評估模型的方式,即是以accuracy準確率做評估。

  • 開始訓練模型

首先輸入訓練資料參數,將預處理過的訓練資料中,所得到的數字影像特徵值(features)和真實值(labels)代入,再設定訓練與驗證的比例,validation_split=0.2的意思是代表Keras會把總共60000筆的資料,切出其中80%作為訓練資料,另外20%作為驗證資料,然後設定epoch次數及每一批次的資料筆數,預計日後會對這些詞彙做一篇補充說明,目前需要瞭解的是epochs=10就代表執行10次訓練週期,而batch_size=200象徵每一批次的訓練有200筆資料,最後設定顯示訓練過程,verbose參數設定為0是不輸出,設定為1是輸出進度條記錄,設定為2才能將每個epoch輸出一行記錄。從印出的執行結果可以看到,每一個訓練週期(epoch)使用資料訓練模型後,計算出各週期的誤差值(loss)與準確率(accuracy),都有確實被記錄下來。


上一篇
Day 23 | 數字辨識 - 以Keras建立多層感知器模型
下一篇
Day 25 | 數字辨識 - 檢視訓練過程
系列文
放課後的菜雞小學堂-深度學習30日自學筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言