神經網路(model.summary())模型層的轉換與層引數詳解
阿新 • • 發佈:2020-12-09
技術標籤:卷積神經網路神經網路tensorflow
簡單的卷積
from keras import layers
from keras import models
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add( layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.summary()
對應的架構
Layer (type) Output Shape Param #
== ===============================================================
conv2d_1 (Conv2D) (None, 26, 26, 32) 320
_________________________________________________________________
max_pooling2d_1 (MaxPooling2D) (None, 13, 13, 32) 0
_________________________________________________________________
conv2d_2 ( Conv2D) (None, 11, 11, 64) 18496
_________________________________________________________________
max_pooling2d_2 (MaxPooling2D) (None, 5, 5, 64) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 3, 3, 64) 36928
_________________________________________________________________
flatten_1 (Flatten) (None, 576) 0
_________________________________________________________________
dense_1 (Dense) (None, 64) 36928
_________________________________________________________________
dense_2 (Dense) (None, 10) 650
=================================================================
Total params: 93,322
Trainable params: 93,322
卷積後的輸出計算
conv2d_1 (Conv2D) 輸入為(28,28,1),卷積核尺寸為(3,3),過濾器個數為32,步長預設(1, 1),所以:
Output: (輸入尺寸-卷積核尺寸+2xpadding)/步長+1
(28-3+2x0)/1+1=26--->(26,26,32)
Shape Param: 卷積核尺寸*2 x 通道數 x 過濾器數+過濾器數
W=3*2x1x32=288,
B=32,
Param=288+32=B+W=320
池化後的輸出計算
conv2d_1 (Conv2D)為(26,26,32),經過池化大小為(2,2),步長預設: If None, it will default to pool_size
.
輸出尺寸: (輸入尺寸-池化尺寸)/步長+1
(26-2)/2+1=13---->(13,13,32)
全連線層
1.卷積後的全連線成的引數計算
全連線的前層conv2d_3 (Conv2D) (None, 3, 3, 64)
全連線層的神經元數 64
Shape Param:前層的尺寸*2x前層的核數x全連線層的神經元數+全連線層的神經元數
3*2 x 64 x 64 + 64= 36928
2.隱藏層的下一層全連線成的引數計算
前層神經元數:64
當前神經元數:10
Shape Param:前層神經元數 x 當前神經元數 + 當前神經元數
64 x 10 + 10=650
Total params
為所以引數的總和:320 + 18496 +36928 + 36928 +650 = 93322