我正在使用Keras框架解决图像分类问题。这是二进制分类问题,我有2个文件夹训练集和测试集,其中包含两个类的图像。我没有每个班级的单独文件夹(比如说猫和狗)。当我们为每个类都有单独的文件夹(cat文件夹和dog文件夹)时,Keras ImageDataGenerator 起作用。但是我将所有图像都放在一个单独的培训集文件夹中,并且我不知道如何进一步进行。请提出如何加载图像。
我也有2个CSV文件-train.csv和test.csv。 train.csv包含2列,即image_id和class_name。 test.csv包含image_id。请注意,image_id与images文件夹中的文件名匹配。
答案 0 :(得分:0)
ImageDataGenerator
的最新版本具有称为flow_from_dataframe
的方法,该方法完全可以满足您的需求。
基本上,首先将CSV文件加载到熊猫DataFrame
中,实例化一个ImageDataGenerator
,然后使用三个重要参数调用flow_from_dataframe
来使用它:
directory
:数据所在的文件夹。x_col
:DataFrame
中的一列,其中包含directory
中与您的训练/测试数据相对应的文件名。y_col
:DataFrame
中的列,对应于生成器将输出的标签。然后,通过调用fit_generator
,将此生成器与其他任何生成器一起使用。 here中提供了更多信息和示例。