Keras ImageDatagenerator从一个子文件夹加载图像

j2cgzkjk  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(87)

我想用autoencoder编写一个图像异常检测的代码。
因此,我将我的图像拆分到一个子文件夹中用于训练图像,一个用于验证图像,一个用于异常图像。

history = model.fit(
    train_generator,
    steps_per_epoch=500 // batch_size,
    epochs=1000,
    validation_data=validation_generator,
    validation_steps=75 // batch_size,
    shuffle=True)

字符串
对于model.fit,我需要单独的train_generatorvalidation_generator
为了得到train_generator,我正在使用这个。

train_generator = datagen.flow_from_directory(
    'C:/Python/Anomaly_dection_V1/cell_images/Uninfected_Train/',
    target_size=(SIZE, SIZE),
    color_mode='rgb',
    batch_size=batch_size,
    class_mode='input',
)


所以我直接从子文件夹中获取图像,其中只有图像,没有其他文件夹。
很遗憾,我收到以下消息:找到0个图像,属于0个类。
有人能帮帮我吗?
如果我取上面的一个文件夹而不是子文件夹,它可以从三个类中找到图像。但是对于model.fit,我只需要train数据和validatio数据。我没有找到任何解决方案,只是使用子文件夹/类。
flow_from_directory不能从一个子文件夹中获取图像吗?

vfh0ocws

vfh0ocws1#

您可以通过指定labels = None来使用image_dataset_from_directory访问特定的单个文件夹映像,如下所示:
这样,您还可以使用validation_split=0.2将该文件夹的数据集拆分为训练和验证部分。

data_dir  = "/content/drive/MyDrive/data/PetImages/Cat"

# in your case: data_dir = "C:/Python/Anomaly_dection_V1/cell_images/Uninfected_Train"

字符串
训练数据:

train_ds = tf.keras.utils.image_dataset_from_directory(
  data_dir,
  validation_split=0.2,
  subset="training",
  seed=123,
  labels = None,
  image_size=(img_height, img_width),
  batch_size=batch_size)


输出量:

Found 12500 files belonging to 1 classes.
Using 10000 files for training.


验证数据集:

val_ds = tf.keras.utils.image_dataset_from_directory(
  data_dir,
  validation_split=0.2,
  subset="validation",
  seed=123,
  labels = None,
  label_mode=None,
  image_size=(img_height, img_width),
  batch_size=batch_size)


输出量:

Found 12500 files belonging to 1 classes.
Using 2500 files for validation.

相关问题