我使用keras进行图像分类,我有10个类别,每个图像有约900个图像,我使用VGG 16
并建立在这个小型网络的基础上
model = Sequential()
model.add(Flatten(input_shape=train_data.shape[1:]))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
使用50 epoch
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy', metrics=['accuracy'])
我得到了以下的赞誉和损失
[INFO] accuracy: 94.72%
[INFO] Loss: 0.45841544931342115
还不确定如何稳定损失,我应该增加时期,还是需要更改其他参数?
答案 0 :(得分:0)
由于最初的val波动,我认为您忘记冻结主要的VGG模型,而只是训练您添加的Dense堆栈层。 实际上,最好使用2D Global Ave Polling而不是展平。
如果问题没有解决,请尝试使用更有效的经过预先训练的CNN架构,例如MobileNet V2或Xception