У меня есть один тензор данных изображения с формой B*H*W*C
и один тензор положения с формой B*H*W*2
. Значения в тензоре положения являются координатами пикселей, и я хочу выполнить выборку пикселей в тензоре данных изображения в соответствии с этими координатами пикселей. Я пробовал один способ сделать это, например преобразовать тензор в одномерный тензор, но я думаю, что это действительно неудобно. Интересно, смогу ли я реализовать это более удобным подходом, например, сопоставлением матриц (например, переназначением в opencv).
Как сэмплировать тензор изображения в тензорном потоке
Ответы (1)
Сначала я хотел бы спросить, уверены ли вы, что матрица позиций не является избыточной. Если элементы матрицы положения просто соответствуют расположению пикселей в массиве изображений, то для данного приложения, однако, вы получаете доступ к матрице положения, которая может использоваться вместо данных изображения.
Возможно, в качестве отправной точки бег
sess = tf.Session()
np_img, np_pos = sess.run([tf_img, tf_pos], feed_dict={...})
преобразует тензоры в массивы numpy, что может упростить ваши операции.
В противном случае 1D-тензор не так уж и плох, и есть функции TF для легкого изменения формы.
person
SuaveSouris
schedule
25.10.2016