我使用tensorflow和完全卷积网络对图像进行回归 . 我想通过随机翻转/旋转来增加数据,但是如何将它们同时应用于输入和输出图像张量?
你是对的,只有在没有协变量的情况下才能使用像 tf.random_flip_left_right 这样的函数 . 例如,如果您的输出是标签图像,则需要对所有输出应用相同的随机操作 .
tf.random_flip_left_right
我认为有两种方法可以做到:
coin = tf.less(tf.random_uniform((), 0., 1.), 0.5) im1 = tf.cond(coin, lambda: tf.flip_left_right(im1), lambda: im1) im2 = tf.cond(coin, lambda: tf.flip_left_right(im2), lambda: im2) ...
all_im = tf.stack([im1, im2,...], axis=2) all_im = tf.random_flip_left_right(all_im) [im1, im2, ...] = tf.split(all_im, [im1.shape[2], im2.shape[2], ...], axis=2)
仅当所有张量具有相同的空间范围时,该第二解决方案才有效 .
1 回答
你是对的,只有在没有协变量的情况下才能使用像
tf.random_flip_left_right
这样的函数 . 例如,如果您的输出是标签图像,则需要对所有输出应用相同的随机操作 .我认为有两种方法可以做到:
tf.random_flip_left_right
,您可以使用仅当所有张量具有相同的空间范围时,该第二解决方案才有效 .