【发布时间】:2020-11-28 00:13:37
【问题描述】:
我正在按如下方式加载我的数据集,
ds = tf.data.Dataset.list_files("/images/*.png")
train_size = int(0.8 * len(ds))
train_ds = ds.take(train_size)
train_ds = train_ds.map(load_sample)
//Splite each image into N smaller tiles
train_ds = train_ds.map(preprocessing_train, num_parallel_calls=AUTOTUNE)
train_ds = train_ds.repeat()
train_ds = train_ds.batch(batch_size)
train_ds = train_ds.prefetch(buffer_size=AUTOTUNE)
图像很大,我需要在推断后进行一些测量,所以我想避免调整它们的大小。我有一个单独的功能,它将拍摄图像并将其拆分为图块,例如。如果图像是 512,512 我想要 256,256 个图块,它返回 2x2x256x256 我想在这 256,256 个图块上训练网络(在推理期间,我还将在更小的图块上运行它,而不是组合起来以获得原始图片)。使用Dataset 如何在map(load_sample) 和train_ds.map(preprocessing_train) 之前将图像拆分为图块。
【问题讨论】:
-
您可以使用您的自定义函数调用
map。 -
@Lescurel 不会返回 2x2 瓦片的返回序列吗?不是图像序列
-
您可以重塑为 (N, W, H, C) 并在之后调用 unbatch。
标签: python tensorflow tensorflow2.0