小编ali*_*ari的帖子

如何使用 tf.keras.utils.image_dataset_from_directory 应用 kfold 交叉验证

我的目标是应用 k 折交叉验证来训练 VGG19 模型。为此,我使用以下代码从目录中读取图像:

DIR = "/Images"
data_dir = pathlib.Path(os.getcwd() + '\\Images')

train_ds = tf.keras.utils.image_dataset_from_directory(
  data_dir,
  validation_split=0.2,
  subset="training",
  seed=123,
  image_size=(224, 224),
  batch_size=32)

val_ds = tf.keras.utils.image_dataset_from_directory(
  data_dir,
  validation_split=0.2,
  subset="validation",
  seed=123,
  image_size=(224, 224),
  batch_size=32)
Run Code Online (Sandbox Code Playgroud)

并且在不使用 kfold 交叉验证的情况下它也能正常工作。但是当我想使用 K 折交叉验证时,我必须train_ds分别使用标签和图像,并且我找不到解决方案,除非我需要使用另一种方法读取图像。因此,我决定使用ImageDataGenerator和来读取图像flow_from_directory。但据我了解,为了使用 加载图像flow_from_directory,我必须有两个单独的子集 astraningtestin 图像,而我的情况下没有traningtest文件夹。这两种方法有什么解决方案吗?

此外,使用第一种方法,即tf.keras.utils.image_dataset_from_directory,将找到的图像数量与 不同flow_from_directory。这是第一个方法的输出:

找到属于 4 个类别的 1060 个文件。使用848个文件进行训练。

这是第二种方法的输出:

img_gen = tf.keras.preprocessing.image.ImageDataGenerator(
    rescale=1.0 / 255,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    vertical_flip=True)
Wheat_data …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow k-fold

4
推荐指数
1
解决办法
3128
查看次数

标签 统计

k-fold ×1

keras ×1

python ×1

tensorflow ×1