【问题标题】:Tensorflow load image dataset with image labelsTensorFlow 加载带有图像标签的图像数据集
【发布时间】:2020-12-08 14:45:34
【问题描述】:
我正在尝试找到一种简单的方法将我的数据放入 TensorFlow 数据集,而无需之前加载它并将其作为 NumPy 数组处理。
在这种情况下,我正在研究一个分割模型,我的数据是结构化的,所以一个目录有训练数据图像,另一个目录有“掩码”,基本上也是图像。
使用tf.keras.preprocessing.image_dataset_from_directory,我可以加载图像数据集,它会将标签设置为目录的名称,或者让我自己通过函数参数设置它们,但它不允许我设置参数,所以它需要来自不同目录的标签。我正在阅读文档,但我没有看到一种简单的方法来加载这些类型的数据集,其中标签本身就是图像。
【问题讨论】:
标签:
python
tensorflow
tensorflow-datasets
【解决方案1】:
这是在 Keras 中执行此操作的一种可能方式:
train_generator_images = image_data_generator_train.flow_from_dataframe(
dataframe=train,
directory='..//VOCdevkit/VOC2009/JPEGImages',
x_col='filename',
class_mode=None,
color_mode="rgb",
target_size=(image_size[1],image_size[0]),
batch_size=batchSize,
seed=seed)
train_generator_mask = mask_data_generator_train.flow_from_dataframe(
dataframe=train,
directory='..//VOCdevkit/VOC2009/SegmentationClass',
x_col='segmentation',
class_mode=None,
color_mode="grayscale",
target_size=(image_size[1],image_size[0]),
batch_size=batchSize,
seed=seed)
train_generator = zip(train_generator_images, train_generator_mask)
这里重要的是设置相同的种子,以便图像和标签匹配。
我从我的一个旧项目中复制了它,所以它可能不是最新的。