Как случайно обрезать партию изображений - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть партия из 5 изображений, я хочу произвольно обрезать их для w_, h_ size

Пример:

import tensorflow as tf
images=tf.reshape(tf.range(100*100*3*5), [100, 100, 3, 5])    
batch_crop = tf.random_crop(images, size=(20, 20))
with tf.Session() as sess:
     batch = sess.run([batch_crop])

Я получаю ошибку: ValueError: Shape mustбыть рангом 4, но рангом 3 для 'concat' (op: 'ConcatV2') с входными формами:

1 Ответ

0 голосов
/ 13 февраля 2019

* Обратите внимание на дополнительные (3, 5) в конце размера.Это эффективно говорит тензорному потоку, что он не должен быть обрезан вдоль третьей и четвертой осей

import tensorflow as tf
images=tf.reshape(tf.range(100*100*3*5), [100, 100, 3, 5])    
batch_crop = tf.random_crop(images, size=(20, 20, 3, 5))
with tf.Session() as sess:
     batch = sess.run([batch_crop])

Должен сделать работу.Из документов , random_crop возвращает

Обрезанный тензор того же ранга, что и значение и размер фигуры.

Сторона, которую вы 'Возможно, вам стоит обратить особое внимание на следующее:

Если измерение не должно быть обрезано, передайте полный размер этого измерения.Например, изображения RGB могут быть обрезаны с размером = [crop_height, crop_width, 3].

Надеюсь, это поможет :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...