【发布时间】:2022-01-18 20:51:21
【问题描述】:
我正在使用 ADE20K 数据集来训练一个类似 Unet 的模型,以便在 Keras 中进行分割。
数据集有超过 1000 个类。我正在尝试使用 Keras 方法image_dataset_from_directory()
将数据集加载到tf.dataset 对象中。
以下文档向您展示了如何加载此数据集对象并将其传递到您的模型中:https://keras.io/api/preprocessing/
# directory for training data
training_data/
...class_a/
......a_image_1.jpg
......a_image_2.jpg
...class_b/
......b_image_1.jpg
......b_image_2.jpg
etc.
from tensorflow import keras
from tensorflow.keras.preprocessing import image_dataset_from_directory
train_ds = image_dataset_from_directory(
directory='training_data/',
labels='inferred',
label_mode='categorical',
batch_size=32,
image_size=(256, 256))
validation_ds = image_dataset_from_directory(
directory='validation_data/',
labels='inferred',
label_mode='categorical',
batch_size=32,
image_size=(256, 256))
model = keras.applications.Xception(weights=None, input_shape=(256, 256, 3), classes=10)
model.compile(optimizer='rmsprop', loss='categorical_crossentropy')
model.fit(train_ds, epochs=10, validation_data=validation_ds)
在上面的示例中,它基于提供的文件夹结构构建了一个数据集对象,其中每个类都是目录中的一个文件夹。就我而言,我有一个这样的目录:
ADE20k_Data/
...cars/
......image_1.jpg
......image_1_segmentation.png
......image_2.jpg
......image_2_segmentation.png
...resteraunt/
......image_1.jpg
......image_1_segmentation.png
......image_2.jpg
......image_2_segmentation.png
etc.
在每个类文件夹中,我都有 X 和 Y(或原始图像和分段图像)。
如果我按照上面的例子加载我的数据集,并将其传递给.fit()方法,X和Y是如何区分的?
我想这就是我的困惑所在。如何正确安排图像分割的数据目录结构。
【问题讨论】:
标签: python tensorflow keras