【发布时间】:2021-08-21 13:34:02
【问题描述】:
我在使用image_dataset_from_directory 创建tf.data.Dataset 进行一对一任务时遇到了一些麻烦。这意味着我会给模型一个输入图像,输出将是另一个图像。
我的数据集目录是这样的:
Dataset/
...input/
......a_image_1.jpg
......a_image_2.jpg
...output/
......a_image_1.jpg
......a_image_2.jpg
在数据集目录中对应的输入图像和目标图像具有相同的名称。我正在尝试通过以下方式加载数据集:
dataset_url = "Project/Dataset"
input_size= 300
batch_size = 8
train_ds = image_dataset_from_directory(
dataset_url,
labels='inferred',
batch_size=batch_size,
image_size=(input_size, input_size),
validation_split=0.2,
subset="training",
seed=1337,
label_mode='int',
)
valid_ds = image_dataset_from_directory(
dataset_url,
labels='inferred',
batch_size=batch_size,
image_size=(input_size, input_size),
validation_split=0.2,
subset="validation",
seed=1337,
label_mode='int',
)
此过程将两个文件夹中的所有图像作为类 1 和 2 加载。现在如何将两个类映射为 input 和 target?我在正确的轨道上吗?有没有其他办法?
【问题讨论】:
-
你只需要这个:
model.fit(train_ds, epochs=2, validation_data=valid_ds). -
这不是分类任务。我有点困惑。
-
我没有找到任何文档声称
image_dataset_from_directory支持任何东西,而不是int、categorical和binary用于自动编码器。但是,如果您打算用于自动编码器,则可以改用ImageDataGenerator.flow_from_directory()并设置class_mode='input'。如果你的标签是其他一些图片,你可以设置labels=None或者label_mode=None,定义2个image_dataset_from_directory。 1 代表 x,1 代表 y,然后是model.fit(x,y)。
标签: tensorflow machine-learning keras computer-vision