пакетное увеличение изображения в тензорном потоке - PullRequest
0 голосов
/ 30 сентября 2018

Я хочу сделать увеличение изображения, например, повернуть случайный угол в тензорном потоке.В каждой партии я хочу поворачивать разные случайные углы для каждого изображения.Я могу сделать это с помощью 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 не совпадают.

Как я могу это исправить?

1 Ответ

0 голосов
/ 13 ноября 2018

Вместо того, чтобы вращать изображения в пакетном режиме, я применил то же вращение к изображениям из 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)
...