TensorFlow:FIFOQueue';s DequeueMany和DequeueUpTo要求组件具有指定的形状
此使用FIFOQUUE的Tensorflow代码导致以下错误TensorFlow:FIFOQueue';s DequeueMany和DequeueUpTo要求组件具有指定的形状,tensorflow,queue,Tensorflow,Queue,此使用FIFOQUUE的Tensorflow代码导致以下错误 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_o
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)
错误
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)]]
你能告诉我我做错了什么吗?问得太早了。也许我会拯救后代
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)
打印出来
[array([ 1.20000005, 2.29999995, 1.20000005, 2.29999995], dtype=float32),
array([ 4.5 , 6.69999981, 4.5 , 6.69999981], dtype=float32)]
所以底线是我们需要在FIFOQueue的构造函数中指定
shapes=…
。