不太確定捲積式神經網路 (CNN) 的精確定義,但大致上是用捲積層 (convolution layer) 取代 DNN 中的幾個全連接層 (fully connected layer),這些捲積層概念跟 feature filter 類似。
先大概有個概念就夠,實作時跟前一篇 DNN 一樣,這些 layer 都像是公版,所以 PyTorch 都有提供,可以直接用,每一層 input, output 大小有對好就可以。
至於第 12 行, fc
layer 的 input 長度 9024 是怎麼算的?不好解釋,隨便填個數字也可以,但執行的時候程式會報錯,印象中 error log 會告訴我們要填 9024。
關於參數量:
MyDNN: 446,637,012
MyCNN: 670,572
CNN省記憶體,省能源,跑得快,準確度高,跟某車廠說小改款的車型,馬力更大卻更省油一樣唬爛。
系列文整理:
0. 從零開始,打造第一個 AI 模型 (序言)
1. 環境設定
2. 準備資料集
3. 實做 全連接神經網路 (參數較多)
4. 實做 捲積式神經網路 (參數較少)
5. 訓練、匯出模型
6. 載入、使用模型