我想进行图像增强,例如,在张量流中旋转随机角度。在每一批中,我想为每个图像旋转不同的随机角度。我可以使用tf.contrib.image.rotate
至image_batch
并使用随机生成的角度张量来做到这一点:
radian = tf.random_uniform(
(batch_size),
minval=-ROT_TH,
maxval=ROT_TH,
dtype=tf.float32,
seed=None,
name=None
)
rotated_batch = tf.contrib.image.rotate(image_batch, radian)
但是,如果我使用allow_smaller_final_batch=True
构建批处理,则batch_size
是无用的,因为image_batch
不会具有固定的批处理大小。并且旋转将失败,因为弧度和image_batch的N维不相同。
我该如何解决?
答案 0 :(得分:0)
我没有批量旋转图像,而是对image_queue.deque()
中的图像进行了相同的旋转:
images = load_images(filenames, options)
radian = tf.random_uniform([len(images)], ...)
images = tf.contrib.image.rotate(images, radian)
image_batch = tf.train.batch_join([images, filenames],
enqueue_many=True, allow_smaller_final_batch=True,
batch_size=WHATEVER)