5

Я хотел бы использовать эту функцию в TensorFlow, однако она работает с тензорами 3D, а не с 4D-тензорами: у меня есть внешний размер batch_size.Функции TensorFlow «tf.image» в партии 4D-изображения

tf.image.random_flip_left_right(input_image_data) 

Тем не менее, эта функция ожидает тензор (образ) формы:

(width, height, channels) 

Но у меня есть несколько изображений, такие как:

(batch_size, width, height, channels) 

Как я мог отображающий случайный флип функция для каждого изображения в моем размере партии и получить в качестве результата тензор с той же 4-й формой, что у меня уже есть?

Я предполагаю, что ему понадобится изменить формулу при входе функции и изменить ее после функции, но я не уверен, нарушит ли это структуру данных и будет смешать изображения в партии при применении зеркало. Более того, этот подход будет выполнять одну рандомизацию на всей партии, а не на основе каждого изображения.

Любое предложение оценено!

+0

Я предполагаю, что эти методы были первоначально разработаны для использования с очередями, как с примером cifar10 на веб-сайте Tensorflow. – jean

+0

[link] (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/cifar10/cifar10_input.py) – jean

+0

Спасибо, на самом деле я уже посмотрел на него, но я бы хотел использовать более простой конвейер для моего текущего проекта. Должен быть уверен, что нужно перейти от 4D к 3D, а затем снова объединить в 4D в графике/сеансе тензора. –

ответ

0

Вам нужно будет использовать что-то вроде tf.pack и tf.unpack или tf.gather и tf.concatenate для преобразования из вашего 4D-массива в ваш 3D-массив.

В зависимости от того, как вы загружаете свои данные, вы можете выполнять обработку в numpy. Другая альтернатива - обрабатывать каждое изображение, прежде чем вкладывать его в пакет.

Дайте мне знать, если вам нужно объяснение того, как работают tf.pack или другие.

Смежные вопросы