【问题标题】:Keras: How to provide custom labels using flow_from_directory?Keras:如何使用 flow_from_directory 提供自定义标签?
【发布时间】:2019-01-09 17:24:28
【问题描述】:

我正在尝试使用 keras 创建多标签分类模型。因此,我将所有图像都放在一个文件夹中。此外,我有一个 CSV 文件,其中包含每个图像的路径,后跟多个可能的标签

Example of my CSV:

path, x1, x2, x3    
img/img_00000001.jpg,1,0,1
img/img_00000002.jpg,0,0,1
...

我正在尝试使用 flow_from_directory 读取我的图像并通过 CSV 提供相应的标签。我到目前为止看起来像这样:

image_path= "C:/user/Images"


data_generator = ImageDataGenerator(rescale=1./255, 
                                    validation_split=0.20)

train_generator = data_generator.flow_from_directory(image_path, target_size=(IMAGE_HEIGHT, IMAGE_SIZE), shuffle=True, seed=13,
                                                     class_mode='binary', batch_size=BATCH_SIZE, subset="training")

validation_generator = data_generator.flow_from_directory(image_path, target_size=(IMAGE_HEIGHT, IMAGE_SIZE), shuffle=False, seed=13,
                                                     class_mode='binary', batch_size=BATCH_SIZE, subset="validation")

此处建议了类似问题的解决方案:How to manually specify class labels in keras flow_from_directory? 提供此代码:

def multiclass_flow_from_directory(flow_from_directory_gen, multiclasses_getter):
    for x, y in flow_from_directory_gen:
        yield x, multiclasses_getter(x, y)

但是,我不知道如何实现 multiclasses_getter() 以使其正常工作。

【问题讨论】:

  • 如果您愿意离开 flow_from_directory,我认为在您的情况下编写自己的自定义生成器(使用 Keras Sequence)对象可能会更容易。 Here 是处理您的案例的一些样板代码:使用 .csv 文件实例化的生成器,其中包含图像名称和列中的标签。
  • 参见我的answer 这个问题的例子

标签: python tensorflow keras


【解决方案1】:

尝试使用 flow_from_dataframe 而不是 flow_from_directory

【讨论】:

    猜你喜欢
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 2018-06-30
    • 1970-01-01
    • 2019-04-01
    相关资源
    最近更新 更多