Python 仅适用于特定文件夹的图像数据生成器增强参数(Keras)

Python 仅适用于特定文件夹的图像数据生成器增强参数(Keras),python,keras,Python,Keras,我有4个单独的图像文件夹,它们有自己的单独标签(文件夹1中的图像对应于标签1等) 但是,图像数据集是不平衡的,我有太多标签1和2的图像,但没有足够的图像用于标签3和4 因此,我决定尝试进行图像增强以增强我的图像数据集 下面是我的代码的样子 train_datagen = ImageDataGenerator(rotation_range=20,width_shift_range=0.2, height_shift_range=0.2,preprocessing_function=preproce

我有4个单独的图像文件夹,它们有自己的单独标签(文件夹1中的图像对应于标签1等)

但是,图像数据集是不平衡的,我有太多标签1和2的图像,但没有足够的图像用于标签3和4

因此,我决定尝试进行图像增强以增强我的图像数据集

下面是我的代码的样子

train_datagen = ImageDataGenerator(rotation_range=20,width_shift_range=0.2, height_shift_range=0.2,preprocessing_function=preprocess_input,horizontal_flip=True)


train_generator=train_datagen.flow_from_directory('/trainImages',target_size=(80,80),batch_size=32,class_mode='categorical')
所有图像文件夹都位于路径“/trainImages”(例如:“/trainImages/1”、“/trainImages/2”)

这种方法的问题是,对文件夹1和2中的图像也进行了增强(不需要增强)

有没有办法自定义ImageDataGenerator以忽略文件夹1和2的图像增强参数


我对Python和Keras都是新手…

您可以创建两个文件夹结构:

  • 文件夹1-仅包含不增加的类的结构
  • 文件夹2-包含要扩充的类的结构
然后创建两个不同的生成器

dataGen1 = ImageDataGenerator(...)
dataGen2 = ImageDataGenerator(.... withAugmentation ....)

sequencer1 = dataGen1.flow_from_directory(dir1, ....)
sequencer2 = dataGen2.flow_from_directory(dir2, ....)
现在您可以创建自己的生成器,它应该包含每个序列器的索引列表

这段代码没有经过测试,如果有bug你可以评论,所以我明天测试它


请记住使用
steps\u per\u epoch=len1+(乘以*len2)
您可以创建两个文件夹结构:

  • 文件夹1-仅包含不增加的类的结构
  • 文件夹2-包含要扩充的类的结构
然后创建两个不同的生成器

dataGen1 = ImageDataGenerator(...)
dataGen2 = ImageDataGenerator(.... withAugmentation ....)

sequencer1 = dataGen1.flow_from_directory(dir1, ....)
sequencer2 = dataGen2.flow_from_directory(dir2, ....)
现在您可以创建自己的生成器,它应该包含每个序列器的索引列表

这段代码没有经过测试,如果有bug你可以评论,所以我明天测试它


请记住使用
步骤/epoch=len1+(乘以*len2)

谢谢您的回答。我在x,y=generators[g][el]处得到一个TypeError,它说“只有整数标量数组才能转换成标量索引”你能打印
所有索引吗<代码>类型(g)
类型(el)
?嗯,我想我算出来了,请参阅新建的
np。在创建
所有标识时连接
行。谢谢您的回答。我在x,y=generators[g][el]处得到一个TypeError,它说“只有整数标量数组才能转换成标量索引”你能打印
所有索引吗<代码>类型(g)
类型(el)
?嗯,我想我已经计算好了,请参见新建
np。在创建
allIndices
中连接
行。