gpt4 book ai didi

keras - 是否可以从 Keras 中的 flow_from_directory 自动推断出 class_weight ?

转载 作者:行者123 更新时间:2023-12-02 17:27:02 25 4
gpt4 key购买 nike

我有一个不平衡的多类数据集,我想使用 fit_generator 中的 class_weight 参数根据每个类的图像数量为类赋予权重。我使用 ImageDataGenerator.flow_from_directory 从目录加载数据集。

是否可以直接从 ImageDataGenerator 对象推断出 class_weight 参数?

最佳答案

刚刚找到了实现这一目标的方法。

from collections import Counter
train_datagen = ImageDataGenerator()
train_generator = train_datagen.flow_from_directory(...)

counter = Counter(train_generator.classes)
max_val = float(max(counter.values()))
class_weights = {class_id : max_val/num_images for class_id, num_images in counter.items()}

model.fit_generator(...,
class_weight=class_weights)

train_generator.classes 是每个图像的类列表。Counter(train_generator.classes) 创建每个类中图像数量的计数器。

请注意,这些权重可能不利于收敛,但您可以将其用作基于出现次数的其他类型权重的基础。

这个答案的灵感来自:https://github.com/fchollet/keras/issues/1875#issuecomment-273752868

关于keras - 是否可以从 Keras 中的 flow_from_directory 自动推断出 class_weight ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com