依靠随机性并在tf.dataset API中使用tf.split来运行操作

时间:2018-12-28 01:43:32

标签: tensorflow tensorflow-datasets

我正在使用依赖于随机性的张量流操作的图像对上运行图像增强。

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分成下游?

0 个答案:

没有答案