1

我想做图像增强,例如,在张量流中旋转随机角度。在每批中,我想为每张图像旋转不同的随机角度。我可以通过使用随机生成的角度张量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维不一样。

我该如何解决?

4

1 回答 1

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)
于 2018-11-13T10:49:34.940 回答