【发布时间】:2021-05-11 18:01:25
【问题描述】:
dataset = tf.data.Dataset.range(1, 6)
def aug(y):
x = np.random.uniform(0,1)
if x > 0.5:
y = 100
return y
dataset = dataset.map(aug)
print(list(dataset))
运行此代码,然后数据集中的所有元素都保持原样,或全部等于 100。如何使每个元素单独转换? 我下面更具体的问题基本上是问这个
我通过以下方式创建我的分割训练集:
dataset = tf.data.Dataset.from_tensor_slices((image_paths, mask_paths))
然后我将我的增强函数应用于数据集:
def augment(image_path, mask_path)):
//use tf.io.read_file and tf.io.decode_jpeg to convert paths to tensors
x = np.random.choice([0,1])
if x == 1:
image = tf.image.flip_up_down(image)
mask = tf.image.flip_up_down(mask)
return image, mask
training_dataset = dataset.map(augment)
BATCH_SIZE=2
training_dataset = training_dataset.shuffle(100, reshuffle_each_iteration=True)
training_dataset = training_dataset.batch(BATCH_SIZE)
training_dataset = training_dataset.repeat()
training_dataset = training_dataset.prefetch(-1)
但是,当我可视化我的训练数据集时,所有图像都应用了相同的翻转——要么全部翻转,要么没有翻转。我希望他们有不同的翻转——有些是颠倒的,有些不是。
为什么会这样?
【问题讨论】:
标签: tensorflow keras tensorflow2.0 image-segmentation