tensorflow tf.train.shuffle_batch函数的问题

tensorflow框架
tf.train.shuffle_batch函数输出的tensor的shape的第一维size是问号

  X, Y = tf.train.shuffle_batch(data_queues, num_threads=num_threads,
                                  batch_size=batch_size,
                                  capacity=batch_size * 64,
                                  min_after_dequeue=batch_size * 32,
                                  allow_smaller_final_batch=True)
    print X

输出X的结果:Tensor("shuffle_batch:0", shape=(?, 28, 28, 1), dtype=float32)
本来 X的shape应该是(87, 28, 28, 1),但是函数输出的却是问号了
请问这样是为什么

我发现allow_smaller_final_batch=True改成False就对了。。。

一般第一维都是代表数量吧 有的时候数量没确定就是?