我最近开始玩CNN。尽管我(认为)了解理论,但无法解释以下图表:
如果有人能帮助我理解验证数据集的准确性随机下降的原因,将非常感谢。
不确定是否有帮助,但是我的CNN架构是:
# Convolution 1
model.add(Convolution2D(64,(3,3),input_shape=(28,28,1)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size = (2,2)))
model.add(BatchNormalization())
# Convolution 2
model.add(Convolution2D(64,(3,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size = (2,2)))
model.add(BatchNormalization())
# Flattening
model.add(Flatten())
# Fully connected layers
model.add(Dense(activation = 'relu', units=64 ))
model.add(Dropout(0.1))
model.add(Dense(activation = 'relu', units=64 ))
model.add(Dropout(0.1))
# Output
model.add(Dense(activation = 'softmax', units=24 ))
我也在使用自定义优化程序:
adam_opt = optimizers.adam(lr = 0.001,amsgrad=True)
model.compile(optimizer = adam_opt, loss = 'categorical_crossentropy',
metrics = ['accuracy'])
培训150个时期,批量大小为64。