。
train_generator = train_datagen.flow_from_directory(train_data_dir, ...
valid_generator = train_datagen.flow_from_directory(valid_data_dir, ...
test_generator = test_datagen.flow_from_directory(test_data_dir, ...历元1/100 90/90 ============================== -6157 s 68s/步进损失: 0.4265 -精度: 0.9142 - val_loss: 0.1147 - val_accuracy: 0.9530
..。
============================== -86 s 954 90/步进损耗: 0.0282 -精度: 0.9907 - val_loss: 0.0992 - val_accuracy: 0.9650
for i in range(1, 11):
evaluate = save_bottlebeck_features(None).evaluate(test_generator, steps = test_generator.n // batch_size, verbose =1)
print('Accuracy Test : {}'.format(evaluate[1]))Model loaded.
30/30 [==============================] - 12s 335ms/step - loss: 1.5205 - accuracy: 0.5470谢谢您抽时间见我。
发布于 2021-06-21 23:24:34
你的训练精度似乎太高,这可能会导致过度拟合,即对新的/测试数据的概括能力较差。
您应该添加一些功能,如辍学(~0.1),以提高概括,并有一个良好的训练效果(约90%-95%)。
发布于 2021-06-23 06:59:59
问题已经解决了。在我的例子中,数据集和模型都很好。但是,实际上代码中存在一个bug,更具体地说,在计算单元格中。
我在一个函数中定义了我的InceptionV3模型,该函数和往常一样被训练和验证。然而,在评估过程中,我编写的代码使它每次测试时都会创建一个新的模型实例,这就是为什么测试的准确性很低的原因。
在纠正错误后,我设法获得了96%+所需的测试精度。如果你愿意的话,你可以在更新后查看笔记本。我认为这可能也是其他人的问题,假设他们的数据集做得很好。通常,在深度学习中,如果某件事情太奇怪,甚至太好,不可能是真的,它可能与代码中的一个bug有关。
https://datascience.stackexchange.com/questions/96926
复制相似问题