VGG转移学习-预测生成器显示与评估生成器不同的结果

时间:2018-10-26 12:42:58

标签: python tensorflow keras vgg-net

我基于VGG预训练模型构建了CNN。我对最后一个转换块(#5)和添加的完全连接层进行了微调。我的分类问题有4个类,我的最后一个激活层是“ softmax”,并且我使用“ sparse_categorical_crossentropy”作为损失函数。当我创建火车/有效生成器时,我正在使用class_mode(“稀疏”)。因此,我拟合了模型,经过2个时间段后,验证数据集的准确率达到了92%。我遇到的问题是,当我检查Forecast_generator以查看验证集上的预测时,准确度约为73真实预测/(73 + 161错误的预测)= 0.31%,但是model.evaluate_generator(validation_generator)的预测值为91%准确性。

this.router.navigate(['/items'], { fragment: item.title });

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果以后有人遇到同样的问题,我会发布答案。您需要在validation_generator中设置Shuffle = False。

validation_generator = test_datagen.flow_from_directory(
        path_data_valid,
        target_size=(img_width, img_height),
        batch_size=16,
        class_mode="sparse", shuffle = False)