ValueError: Невозможно определить ранг Тензорного: Tensor("fifo_queue_Dequeue:0", dtype=float32)
Я пытаюсь загрузить пакеты изображений, каждый из которых имеет разный размер (если быть точным, они взяты из набора данных pascal voc). Файл source_images.npy содержит изображения разной высоты, ширины, но одинаковых каналов. Что я делаю не так? Существуют ли другие способы отправки изображений разных размеров?
Это мой код:
def feed(images, im, epochs=None):
epochs_elapsed = 0
while epochs is None or epochs_elapsed < epochs:
for i in range(len(images)):
yield {im: images[i]}
epochs_elapsed += 1
def tf_ops(images, capacity=200):
im = tf.placeholder(tf.float32)
queue = tf.FIFOQueue(capacity, [tf.float32])
enqueue_op = queue.enqueue(im)
fqr = FeedingQueueRunner(queue, [enqueue_op],
feed_fns=[feed(images,im).next()])
tf.train.add_queue_runner(fqr)
return queue.dequeue()
source_images = np.load('source_images.npy')
source_images=source_images.tolist()
source_im= tf_ops(source_images)
source_im_batch = tf.train.batch([source_im],batch_size=128,capacity=200, dynamic_pad=True)
Ошибка:
source_im_batch = tf.train.batch([source_im], batch_size=128,capacity=200, dynamic_pad=True)
File "/home/anaconda2/lib/python2.7/site-packages/tensorflow/python/training/input.py", line 872, in batch
name=name)
File "/home/anaconda2/lib/python2.7/site-packages/tensorflow/python/training/input.py", line 655, in _batch
shapes = _shapes([tensor_list], shapes, enqueue_many)
File "/home/anaconda2/lib/python2.7/site-packages/tensorflow/python/training/input.py", line 598, in _shapes
raise ValueError("Cannot infer Tensor's rank: %s" % tl[i])
ValueError: Cannot infer Tensor's rank: Tensor("fifo_queue_Dequeue:0", dtype=float32)