获得 keras 预测的真实标签

无蟒蛇

我有一个用于图像分类的标准 CNN,使用以下生成器来获取数据集:

generator = validation_image_generator.flow_from_directory(batch_size=BATCH_SIZE,
                                                           directory=val_dir,
                                                           shuffle=False,
                                                           target_size=(100,100),
                                                           class_mode='categorical')

我可以通过以下方式轻松获得预测标签:

predictions = model.predict(dataset)

现在我想以与预测相同的顺序获取所有预测的(原始)真实标签图像,以便比较它们。我确信这些信息很容易存储在某个地方,但我一直找不到。

MQOD

您必须从数据生成器获取图像并将它们提供给 model.predict。如果 image_gen 是你的 ImageDataGenerator 所以你可以使用:

X,y = image_gen.next()
prediction = model.predict(X)

现在 X 是您的图像(例如 X[0] 是第一张图像,X[1] 是第二张图像,依此类推),y 是它们对应的标签,而预测是您为每个图像输出的模型。

这将从 ImageDataGenerator 给出一个批次并显示 X、y 和预测。要在整个 epoch 中运行它,您必须使用 for 循环:

for step in range(step_per_epoch):
    X, y = image_gen.next()
    prediction = model.predict(X)

其中 step_per_epoch 应该是 dataset_size/batch_size。

但请记住 ImageDataGenerator 随机工作。因此,如果您有 100 张图像并且您的批次大小为 10,如果您从 ImageDataGenerator 中提取 10 个批次,您可能会看到一些图像两次而您不会看到其他一些图像。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章