我有一个包含两类图片的数据集。 数据集组织在 1 个文件夹中,其中包含 2 个文件夹,每个类 1 个。 1类图片路径:“Project\Class_A” 2类图片路径:“Project\Class_B”
我想(快速)读取所有数据。 将其分为训练、验证、测试。 训练张量流模型。
我看到 image_dataset_from_directory 函数很好地完成了这个任务,但我找不到如何拆分为测试数据集(仅训练、验证)。 我希望随机分割数据(而不仅仅是通过将一些图片移动到不同的文件夹来手动分割数据)。
您是否知道如何快速读取所有数据并将其拆分为训练、验证、测试数据集?
谢谢你。
dataset = tf.keras.preprocessing.image_dataset_from_directory(
"Project",
shuffle = True,
image_size = (256, 256),
batch_size = 32,
)
def get_dataset_partition_tf(ds, train_split=0.8, val_split=0.1, test_split=0.1, shuffle=True, shuffle_size=10000):
assert train_split + val_split + test_split == 1.0
ds_size = len(ds)
if shuffle:
ds = ds.shuffle(shuffle_size, seed=12)
train_size = int(train_split * ds_size)
val_size = int(val_split * ds_size)
train_ds = ds.take(train_size)
val_ds = ds.skip(train_size).take(val_size)
test_ds = ds.skip(train_size + val_size)
return train_ds, test_ds, val_ds