Keras model.summary 參數量怎麼算?Dense、Conv2D 與 BatchNormalization Param 計算 hero image

← INSIGHTS & PERSPECTIVES | 機器學習

Keras model.summary 參數量怎麼算?Dense、Conv2D 與 BatchNormalization Param 計算

說明 Keras model.summary() 的 Param 欄位如何計算,包含 Dense、Conv2D、BatchNormalization 範例。

Keras `model.summary()` 的 Param 欄位代表每一層可訓練或不可訓練參數數量。Dense 層通常是「輸入特徵數 x 輸出神經元數 + bias」,Conv2D 則是「kernel 高 x kernel 寬 x 輸入通道 x filter 數 + bias」。

model.summary() 的 Param 是什麼?

`model.summary()` 的 Param 是模型層參數數量摘要。Param 可以幫助開發者判斷模型容量、記憶體需求與過擬合風險。

TensorFlow 的 `tf.keras.Model` 文件說明 Model 提供訓練、評估、推論與摘要等方法(TensorFlow,存取日期:2026-08-27)。Param 數量越高,模型通常需要更多資料與運算資源,但不代表準確率一定更高。

Dense 層參數量怎麼算?

Dense 層參數量等於輸入特徵數乘以輸出神經元數,再加上每個輸出神經元的 bias。公式是 `input_dim * units + units`。

範例:

```python

from tensorflow.keras import layers, Sequential

model = Sequential([

layers.Dense(64, input_shape=(100,)),

])

model.summary()

```

Dense 層 Param 計算:

```text

100 * 64 + 64 = 6464

```

實務資訊增益:若 Dense 層接在 Flatten 後面,參數量常會暴增。影像模型中過早 Flatten,通常比多加一層卷積更容易造成記憶體與過擬合問題。

Conv2D 層參數量怎麼算?

Conv2D 層參數量等於 kernel 面積乘以輸入通道數乘以 filter 數,再加上 bias。公式是 `kernel_h kernel_w input_channels * filters + filters`。

範例:輸入通道 3、kernel 3x3、filter 32。

```text

3 3 3 * 32 + 32 = 896

```

Conv2D 的輸出影像尺寸會影響下一層輸入 shape,但不直接影響該 Conv2D 層自己的權重數量。Conv2D 權重由 kernel、通道與 filter 決定。

BatchNormalization 的參數為什麼常看起來比較多?

BatchNormalization 通常包含 gamma、beta、moving mean 與 moving variance。gamma 與 beta 可訓練,moving mean 與 moving variance 不可訓練。

若某層有 64 個 channel,BatchNormalization 可能顯示 256 個參數,其中 128 個可訓練、128 個不可訓練。這也是檢查 `Trainable params` 與 `Non-trainable params` 時容易忽略的地方。

常見問題

Qmodel.summary 的 Param 越少越好嗎?

Param 越少不一定越好。較少參數可能降低過擬合與記憶體成本,但模型容量不足時會欠擬合。

QConv2D 的輸出圖片大小會影響 Param 嗎?

Conv2D 的輸出圖片大小不影響該層 Param。Conv2D Param 由 kernel 尺寸、輸入通道、filter 數與 bias 決定。

Qbias 可以不要算嗎?

若 layer 設定 `use_bias=False`,bias 就不會計入參數量。BatchNormalization 後面的卷積層有時會關閉 bias。

QNon-trainable params 是什麼?

Non-trainable params 是訓練時不由梯度更新的參數。BatchNormalization 的 moving statistics 與凍結模型層的權重都可能出現在這裡。

Q為什麼 Flatten 後 Dense 參數量很大?

Flatten 會把影像特徵圖攤平成長向量。若特徵圖尺寸仍很大,接 Dense 層會讓 `input_dim * units` 快速變成巨大數字。

參考資料

最後更新

2026-08-27

延伸閱讀

關於作者 {#author}

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2023-01-04