從keras中運行卷積神經網絡我們調用model.summary()
會發現所定義卷積神經網絡的參數情況。
我們寫這樣一個卷積網絡:
from keras import models
from keras import layers
model = models.Sequential()
model.add(layers.Conv2D(32, (3,3), activation='relu',input_shape=(28,28,1)))
model.add(layers.MaxPool2D((2,2)))
model.add(layers.Conv2D(64, (3,3), activation='relu'))
model.add(layers.MaxPool2D((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()
得到這樣的參數結果。
那麼320個參數怎麼來的呢?
320 = (3x3x1)x32+32
其中3x3爲濾波器大小,1爲前一層的channel值,32爲濾波器的個數
18496=(3x3x32)x64+64
剩下的以此類推,
dense_1的參數計算:
36928=576x64+64