我正在使用依赖于随机性的张量流操作的图像对上运行图像增强。
def augment(img1, img2):
image = tf.concat([img1, img2], 2)
image = tf.random_crop(image, [256, 256, image.get_shape()[-1]])
img1, img2 = tf.split(image, num_or_size_splits=2, axis=2)
return img1, img2
在简单的用例中,它可以正常工作,并且我的图像对可以同步裁剪。但是,如果我在下游执行一些数据集映射操作。似乎在每个通道而不是concat图像上调用了增强函数。例如...
dataset = dataset.map(augment)
d1 = dataset.map(lambda im1, im2: im1)
d2 = dataset.map(lambda im1, im2: im2)
# other ops on dataset
dataset = tf.data.Dataset.zip((d1, d2))
return dataset
这是理想的行为吗?无论如何,是否要确保tf.random_crop
同时在两个通道上运行,而不是被tf.split
分成下游?