python - 为什么我的验证准确率停留在 65% 左右?如何提高它?

标签 python tensorflow keras conv-neural-network

我正在使用 VGG16 制作一个包含 5 个类的图像分类 CNN,每个类有 693 个宽度和高度为 224px 的图像,但我的验证准确率在 15-20 个周期后停留在 60% - 65% 左右。

我已经在使用一些数据增强、批量归一化和 dropout,并且我已经卡住了前 5 层,但我似乎无法将准确率提高超过 65%。

这些是我自己的图层

img_rows, img_cols, img_channel = 224, 224, 3

base_model = applications.VGG16(weights='imagenet', include_top=False, input_shape=(img_rows, img_cols, img_channel))
for layer in base_model.layers[:5]:
    layer.trainable = False

add_model = Sequential()
add_model.add(Flatten(input_shape=base_model.output_shape[1:]))
add_model.add(Dropout(0.5))
add_model.add(Dense(512, activation='relu'))
add_model.add(BatchNormalization())
add_model.add(Dropout(0.5))
add_model.add(Dense(5, activation='softmax'))

model = Model(inputs=base_model.input, outputs=add_model(base_model.output))
model.compile(loss='sparse_categorical_crossentropy', optimizer=optimizers.Adam(lr=0.0001),
              metrics=['accuracy'])

model.summary()

这是我的模型的数据集

batch_size = 64
epochs = 25

train_datagen = ImageDataGenerator(
        rotation_range=30,
        width_shift_range=.1,
        height_shift_range=.1, 
        horizontal_flip=True)
train_datagen.fit(x_train)


history = model.fit_generator(
    train_datagen.flow(x_train, y_train, batch_size=batch_size),
    steps_per_epoch=x_train.shape[0] // batch_size,
    epochs=epochs,
    validation_data=(x_test, y_test),
    callbacks=[ModelCheckpoint('VGG16-transferlearning.model', monitor='val_acc', save_best_only=True)]
)

我想要获得更高的准确性,因为我现在得到的还不够,所以任何帮助或建议将不胜感激。

最佳答案

您可以尝试的一些方法是:

但是,像往常一样,这取决于您使用的数据。平衡良好吗?

关于python - 为什么我的验证准确率停留在 65% 左右?如何提高它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56632808/

相关文章:

python - 解析站点中的表

python - 为什么这段代码做的是 closed[init[0]][init[1]] 而不是 closed[init[0]][init[0]]?

python - 如何在树莓派 2 上安装 TensorFlow

python - 提取比 numpy 中的花式索引慢?

tensorflow - TF对象检测API检测模型再训练: "object_detection.protos.SsdFeatureExtractor" has no field named "batch_norm_trainable"

python - 如何将 .ckpt 移植到 .pb 以在 Tensorflow for Mobile Poets 中使用

tensorflow - Dask DataFrame - Keras 模型的预测

tensorflow - 为什么在TensorFlow Keras中损失函数和指标之间获得不同的值?

python - Keras 符号输入/输出未实现 `__len__` 错误

python - 使用keras进行人脸识别