使用方式
使用keras構建深度學習模型,我們會通過model.summary()輸出模型各層的參數狀況,如下:
01 02 03 04 05 06 07 08 09 10 | 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() |
輸出範例
01 02 03 04 05 06 07 08 09 10 11 12 13 | 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。