Keras fit_生成器和predict_生成器中验证结果之间的差异
我有一个我无法理解的问题 对于培训,我使用fit_generator,如下所示,验证数据返回的f1分数约为0.8Keras fit_生成器和predict_生成器中验证结果之间的差异,keras,Keras,我有一个我无法理解的问题 对于培训,我使用fit_generator,如下所示,验证数据返回的f1分数约为0.8 validation_generator = val_datagen.flow_from_directory( directory=val_data_dir, target_size=(img_width, img_height), batch_size=batch_size, shuffle=True,
validation_generator = val_datagen.flow_from_directory(
directory=val_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
shuffle=True,
classes=["0", "1"],
class_mode="categorical")
myModel.fit_generator(
train_generator,
steps_per_epoch=int(nbr_train_samples / batch_size) + (nbr_train_samples % batch_size > 0),
epochs=nbr_epochs,
validation_data=validation_generator,
validation_steps=int(nbr_validation_samples / batch_size) + (nbr_validation_samples % batch_size > 0))
然后,我使用predict_generator对上述验证数据中使用的同一组数据进行分析。唯一的区别是,我将valid_data_dir下的两个子文件夹合并到test_data_dir中的一个文件夹中,并调用以下方法
test_generator = test_datagen.flow_from_directory(
directory= test_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
shuffle=False,
classes=None,
class_mode=None)
predictions = myModel.predict_generator(test_generator, int(nbr_test_samples / batch_size) + (nbr_test_samples % batch_size > 0), verbose=1)
然后,我根据预测计算f1,结果非常低。欢迎这么做。(1) 您确定这是编码问题吗?不仅仅是因为你的数据过多?(2) 你可能需要提供一些数据来帮助其他人重现问题。我不认为这是过度拟合的问题。这是因为我在fit_generator和predict_generator中使用了完全相同的数据集进行验证。对于相同的模型,相同的数据集,但两个不同的结果,我无法理解。实际上,我发现了一些关于这个问题的类似问题。然而,在这些问题中,人们经常犯错误,忘记设置shuffle=False,因此由于图像被洗牌,结果无法匹配。就我而言,我做了正确的设置。我认为我已经发现了问题。这是在我计算f1分数进行验证的方式。与“分类”模式一起使用时不正确。需要使用“二进制”模式。