user3002273
user3002273

Reputation:

TensorFlow: FIFOQueue's DequeueMany and DequeueUpTo require the components to have specified shapes

This Tensorflow code using FIFOQueue causes the below error

import tensorflow as tf

with tf.Session() as sess:
    queue = tf.FIFOQueue(100, tf.float32)
    enqueue_op = queue.enqueue([1.2, 2.3])
    inputs = queue.dequeue_many(2)
    sess.run(enqueue_op)
    sess.run(enqueue_op)
    print sess.run(inputs)

The error

InvalidArgumentError (see above for traceback): FIFOQueue's DequeueMany and DequeueUpTo require the components to have specified shapes.
     [[Node: fifo_queue_DequeueMany = QueueDequeueMany[_class=["loc:@fifo_queue"], component_types=[DT_FLOAT], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](fifo_queue, fifo_queue_DequeueMany/n)]]

Can you please tell me what I am doing wrong?

Upvotes: 2

Views: 1038

Answers (1)

user3002273
user3002273

Reputation:

Asked too soon. Perhaps I will save future generations

with tf.Session() as sess:
    queue = tf.FIFOQueue(100, dtypes=[tf.float32, tf.float32], shapes=[(), ()])
    enqueue_op = queue.enqueue_many([[1.2, 2.3], [4.5, 6.7]])
    inputs = queue.dequeue_many(4)
    sess.run(enqueue_op)
    sess.run(enqueue_op)
    print sess.run(inputs)

prints out,

[array([ 1.20000005,  2.29999995,  1.20000005,  2.29999995], dtype=float32), 
 array([ 4.5       ,  6.69999981,  4.5       ,  6.69999981], dtype=float32)]

Upvotes: 4

Related Questions