使用方式
使用keras構建深度學習模型,我們會通過model.summary()輸出模型各層的參數狀況,如下:
import tensorflow as tf # 建立模型 model = tf.keras.Sequential() model.add(tf.keras.layers.Conv2D(32, (3, 3), input_shape=(32, 32, 3))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(10)) # 顯示模型的摘要信息 model.summary()
輸出範例
Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d (Conv2D) (None, 30, 30, 32) 896 _________________________________________________________________ flatten (Flatten) (None, 28800) 0 _________________________________________________________________ dense (Dense) (None, 10) 288110 ================================================================= Total params: 288,006 Trainable params: 288,006 Non-trainable params: 0
參數意義
在這個輸出中,Total params 表示模型的總參數數量,可以用來反推模型的大小。請注意,模型的大小不僅僅是參數數量的函數,還可能受到訓練資料的大小、訓練次數等因素的影響。
Param就是參數的意思,也就是每層神經元的權重(w)個數。
怎麼算出來的?Param = (輸入維度+1) * 輸出的神經元個數,但是每個神經元都要考慮到有一個Bias,所以要再加上1。