keras flow_from_directory 返回 0 张图片

数据挖掘 喀拉斯 图像分类
2021-09-16 00:46:08

当我尝试使用以下代码片段来尝试对一批图像进行预测时,我收到一条消息说没有找到图像:

test_datagen = ImageDataGenerator()

test_generator = test_datagen.flow_from_directory(
        directory='test/',
        target_size=(300, 300),
        color_mode="rgb",
        shuffle = False,
        class_mode='binary',
        batch_size=1)

filenames = test_generator.filenames

我的目录结构如下。我首先有一个名为 dogs_vs_cats 的主目录,其中有两个子目录 train 和 test 包含各自的图像以及包含此代码的笔记本。

3个回答

Kerasgenerator总是寻找子文件夹(代表类)。图像洞察子文件夹与一个类相关联。

所以当你工作C:\images\并且你有两个类,比如 C1、C2 时,你需要创建子文件夹C:\images\C1\C:\images\C2\. 生成器函数应指向的目录洞察力C:\images\

图像预测的情况见这篇文章:https ://stackoverflow.com/a/55991598/9524424

还有另一个选项,您不必将测试文件复制到另一个测试文件中:

datagen = ImageDataGenerator()

test_data = datagen.flow_from_directory('.', classes=['test'])

这解决了我的问题。有关更多信息,请参阅

ImageDataGenerator在测试图像集上运行时可能有两种情况。

案例#1:测试文件夹有代表类的子文件夹。彼得已经回答了这部分。

案例#2:没有标记的测试图像。在这种情况下,您将拥有一个测试文件夹,其中包含您要分类的所有图像。

Kyle Banks 在他的博客中写了一个技巧来处理这个问题:https ://kylewbanks.com/blog/loading-unlabeled-images-with-imagedatagenerator-flowfromdirectory-keras