如何使用 ImageDataGenerator.flow_from_directory 将每个 class/label 保存在其他子文件夹中?

How to use ImageDataGenerator.flow_from_directory to save each class/label in other subfolders?

编辑:
设置:

Win 10 x64
Python 3.8.7
TF version 2.4.0
Keras version 2.4.3 #not needed I think but

我的数据集的图像结构如下:

dataset/
  class1/
    img1class1.jpg
    ...
  class2/
    img1class2.jpg
    ...

我正在使用 tensorflow.keras.preprocessing.image.ImageDataGenerator 中的 flow_from_directory 方法,选项如下:

gen = imgen.flow_from_directory(
  'dataset/',
  target_size = (160, 120),
  batch_size = 25,
  class_mode = 'binary',
  save_to_dir = 'new_dataset/',
  save_prefix = 'new',
  save_format = 'jpg'
)

但它会将每个 类 中的每张图片都放入一个文件夹中 new_dataset/

new_dataset/
  new1.jpg #while that could be from class 1
  new2.jpg # and that from class 2
  ...

是否可以 'force' flow_from_directory 将文件夹结构设为:

new_dataset/
  class1/
    new1.jpg
    ...
  class2/
    new1.jpg
    ...

是否也有可能 batch_size 将只有来自一个特定 img 的图像 'created',我的意思是 img1class1.jpg 将是整批但有其他转换? 我想从 1 张旧图像中提取 25 张新图像。

对不起我的英语,我希望你能理解(:

我找到了 'workaround',所以这里是:

import os

labels = {}

for i, one_class in enumerate(os.listdir('dataset')):
  gen = idg.flow_from_directory(
    'dataset',
    target_size = (160, 120),
    batch_size = 25,
    class_mode = 'binary',
    classes = [one_class],
    save_to_dir = f'dataset/{one_class}',
    save_prefix = 'new_image',
    save_format = 'jpg'
  )

  ...
  
  labels[one_class] = i #If u need them...