【问题标题】:Low accuracy i.e. 52% in predicting whereas the training and validation accuracy during training is around 92%低准确度,即预测中的 52%,而训练期间的训练和验证准确度约为 92%
【发布时间】:2021-08-04 19:59:14
【问题描述】:

我正在使用预训练的 VGG19 来训练模型。在训练时,我获得了大约 92% 的准确率(训练和验证)。

vgg19 = VGG19(input_shape=IMAGE_SIZE, weights='imagenet', include_top=False)
for layer in vgg19.layers:
    layer.trainable = False

x = Flatten()(vgg19.output)
prediction = Dense(len(folders), activation='softmax')(x)
model = Model(inputs=vgg19.input, outputs=prediction)

model.compile(loss='categorical_crossentropy',
  optimizer=tf.keras.optimizers.Adam(
    learning_rate=0.0005,
    name="Adam"),
  metrics=['accuracy']
)

r = model.fit_generator(
  training_set,
  validation_data=test_set,
  epochs=20,
  steps_per_epoch=len(training_set),
  validation_steps=len(test_set)
)

predictions = model.predict(test_set, steps = test_set.n // 31, verbose=1)

y_pred = []
for i in predictions:
  y_pred.append(int(np.argmax(i)))
y_pred = np.asarray(y_pred)

训练时的准确率可以从这里查看。

但是,在进行预测时,我得到的准确率仅为 52.33%。

有人可以告诉我我在这里做错了什么吗? 谢谢!

【问题讨论】:

  • 我认为你有一个过度拟合的问题。您可以使用多种方法来防止过度拟合数据。使用正则化或 dropout 此外,您可以减少神经元或层数。此外,提前停止可能是个好主意
  • 嘿,验证准确率和损失都很好。我说的是我通过 model.predict() 获得的准确性。为什么只有52%?另一方面,验证准确率约为 90%,这对我来说似乎不是一个过度拟合的问题。如果我错了,请纠正我。
  • 你标准化你的测试数据了吗?
  • 是的,它已标准化。
  • 这是一个有用的链接:stackoverflow.com/questions/48718663/…

标签: python keras deep-learning


【解决方案1】:

您的算法似乎缺乏概括性。一个原因可能是您用于训练的数据集的大小。更大的数据集,更好的泛化

【讨论】:

    【解决方案2】:

    解决办法是:

    test_set = test_datagen.flow_from_directory('/content/drive/MyDrive/dataset/Test',
                                                target_size = (224, 224),
                                                batch_size = 32,
                                                class_mode = 'categorical',
                                                shuffle=False)
    

    我没有在默认情况下保留shuffle=Trueflow_from_directory 中添加shuffle=False,这就是我在预测时准确性降低的原因。

    我希望它会帮助任何犯同样错误的人!

    【讨论】:

      猜你喜欢
      • 2021-07-22
      • 2020-12-03
      • 2020-10-16
      • 2020-11-06
      • 2020-07-08
      • 2018-12-01
      • 2023-03-17
      • 1970-01-01
      • 2018-08-16
      相关资源
      最近更新 更多