gpt4 book ai didi

python - 如何将从 image_dataset_from_directory 获取的数据集拆分为数据和标签?

转载 作者:行者123 更新时间:2023-12-02 01:53:58 24 4
gpt4 key购买 nike

我正在尝试使用 Python 在 TensorFlow 中构建 CNN。我已将图像加载到数据集中,如下所示:

dataset = tf.keras.preprocessing.image_dataset_from_directory(
"train_data", shuffle=True, image_size=(578, 260),
batch_size=BATCH_SIZE)

但是,如果我想在这个数据集上使用 train_test_split 或 fit_resample,我需要将它分成数据和标签。我是 TensorFlow 的新手,不知道该怎么做。非常感谢任何帮助。

最佳答案

您可以使用subset 参数将您的数据分为trainingvalidation

import tensorflow as tf
import pathlib

dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
data_dir = tf.keras.utils.get_file('flower_photos', origin=dataset_url, untar=True)
data_dir = pathlib.Path(data_dir)


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

val_ds = tf.keras.utils.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="validation",
seed=1,
image_size=(256, 256),
batch_size=32)

for x, y in train_ds.take(1):
print('Image --> ', x.shape, 'Label --> ', y.shape)
Found 3670 files belonging to 5 classes.
Using 2936 files for training.
Found 3670 files belonging to 5 classes.
Using 734 files for validation.
Image --> (32, 256, 256, 3) Label --> (32,)

至于你的标签,根据docs :

Either "inferred" (labels are generated from the directory structure),None (no labels), or a list/tuple of integer labels of the same sizeas the number of image files found in the directory. Labels should besorted according to the alphanumeric order of the image file paths(obtained via os.walk(directory) in Python).

因此,只需尝试遍历 train_ds 并查看它们是否存在。您还可以使用参数 label_mode 来引用您拥有的标签类型,并使用 class_names 来明确列出您的类。

如果你的类是不平衡的,你可以使用 model.fit(*)class_weights 参数。有关更多信息,请查看此 post .

关于python - 如何将从 image_dataset_from_directory 获取的数据集拆分为数据和标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69848315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com